fileuploadcontroller.java

来自「this is for appfuse1.8 source using stru」· Java 代码 · 共 107 行

JAVA
107
字号
package org.appfuse.webapp.action;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.appfuse.Constants;import org.springframework.validation.BindException;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartFile;import org.springframework.web.servlet.ModelAndView;/** * Controller class to upload Files. * * <p> * <a href="FileUploadFormController.java.html"><i>View Source</i></a> * </p> * * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a> */public class FileUploadController extends BaseFormController {    public ModelAndView processFormSubmission(HttpServletRequest request,                                              HttpServletResponse response,                                              Object command,                                              BindException errors)    throws Exception {        if (request.getParameter("cancel") != null) {            return new ModelAndView(getCancelView());        }        return super.processFormSubmission(request, response, command, errors);    }    public ModelAndView onSubmit(HttpServletRequest request,                                 HttpServletResponse response, Object command,                                 BindException errors)    throws Exception {        FileUpload fileUpload = (FileUpload) command;        // validate a file was entered        if (fileUpload.getFile().length == 0) {            Object[] args =                 new Object[] { getText("uploadForm.file", request.getLocale()) };            errors.rejectValue("file", "errors.required", args, "File");                        return showForm(request, response, errors);        }        MultipartHttpServletRequest multipartRequest =            (MultipartHttpServletRequest) request;        CommonsMultipartFile file =            (CommonsMultipartFile) multipartRequest.getFile("file");        // the directory to upload to        String uploadDir =            getServletContext().getRealPath("/resources") + "/" +            request.getRemoteUser() + "/";        // Create the directory if it doesn't exist        File dirPath = new File(uploadDir);        if (!dirPath.exists()) {            dirPath.mkdirs();        }        //retrieve the file data        InputStream stream = file.getInputStream();        //write the file to the file specified        OutputStream bos =            new FileOutputStream(uploadDir + file.getOriginalFilename());        int bytesRead = 0;        byte[] buffer = new byte[8192];        while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {            bos.write(buffer, 0, bytesRead);        }        bos.close();        //close the stream        stream.close();        // place the data into the request for retrieval on next page        request.setAttribute("friendlyName", fileUpload.getName());        request.setAttribute("fileName", file.getOriginalFilename());        request.setAttribute("contentType", file.getContentType());        request.setAttribute("size", file.getSize() + " bytes");        request.setAttribute("location",                             dirPath.getAbsolutePath() + Constants.FILE_SEP +                             file.getOriginalFilename());        String link =            request.getContextPath() + "/resources" + "/" +            request.getRemoteUser() + "/";        request.setAttribute("link", link + file.getOriginalFilename());        return new ModelAndView(getSuccessView());    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?