📄 fileuploadcontroller.java
字号:
package org.appfuse.web;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.util.FileCopyUtils;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
public class FileUploadController extends SimpleFormController {
private static Log log = LogFactory.getLog(FileUploadController.class);
private MailSender mailSender;
private SimpleMailMessage message;
public void setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
public void setMessage(SimpleMailMessage message) {
this.message = message;
}
protected void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder)
throws ServletException {
binder.registerCustomEditor(byte[].class,
new ByteArrayMultipartFileEditor());
}
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response,
Object command, BindException errors)
throws ServletException, IOException {
FileUpload bean = (FileUpload) command;
byte[] bytes = bean.getFile();
// cast to multipart file so we can get additional information
MultipartHttpServletRequest multipartRequest =
(MultipartHttpServletRequest) request;
CommonsMultipartFile file =
(CommonsMultipartFile) multipartRequest.getFile("file");
String uploadDir = getServletContext().getRealPath("/upload/");
// Create the directory if it doesn't exist
File dirPath = new File(uploadDir);
if (!dirPath.exists()) {
dirPath.mkdirs();
}
String sep = System.getProperty("file.separator");
if (log.isDebugEnabled()) {
log.debug("uploading to: " + uploadDir + sep +
file.getOriginalFilename());
}
String filename = file.getOriginalFilename();
if (filename.endsWith(".html")) {
filename = filename.replaceAll(".html", ".htm");
}
File uploadedFile = new File(uploadDir + sep + filename);
FileCopyUtils.copy(bytes, uploadedFile);
// set success message
request.getSession().setAttribute("message", "Upload completed.");
String url = request.getContextPath() + "/upload/" +
filename;
Map model = new HashMap();
model.put("filename", file.getOriginalFilename());
model.put("url", url);
// Notify user that file has finished uploading
SimpleMailMessage msg = new SimpleMailMessage(this.message);
msg.setTo("matt@raibledesigns.com");
msg.setText("File \"" + file.getOriginalFilename() +
"\" has finished uploading.");
try {
mailSender.send(msg);
} catch (MailException ex) {
log.error(ex.getMessage());
}
return new ModelAndView(getSuccessView(), "model", model);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -