File upload 使用Spring3上传文件

File upload 使用Spring3上传文件,file-upload,spring-3,File Upload,Spring 3,我正在从这个页面上传一个图像文件,我得到了多部分文件创建的nullpointer异常,我无法理解我哪里出错了?我是java新手您定义了multipartresolver bean吗 你可以把豆子报关 “”将控制器类方法更改为此,并尝试一下 public class UploadFile { private String filename; private CommonsMultipartFile fileData; /** * @return the filen

我正在从这个页面上传一个图像文件,我得到了多部分文件创建的nullpointer异常,我无法理解我哪里出错了?我是java新手

您定义了multipartresolver bean吗

你可以把豆子报关
“”

将控制器类方法更改为此,并尝试一下

public class UploadFile {
    private String filename;
    private CommonsMultipartFile fileData;
    /**
     * @return the filename
     */
    public String getFilename() {
        return filename;
    }
    /**
     * @param filename the filename to set
     */
    public void setFilename(String filename) {
        this.filename = filename;
    }
    /**
     * @return the fileData
     */
    public CommonsMultipartFile getFileData() {
        return fileData;
    }
    /**
     * @param fileData the fileData to set
     */
    public void setFileData(CommonsMultipartFile fileData) {
        this.fileData = fileData;
    }
}

FileUploadController
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
    public String fileupload(
            serviceOrder,HttpSession session,
            ModelMap model, HttpServletRequest request,UploadFile uploadFile,
            HttpServletResponse response, Object command, BindingResult result) throws Exception {

        if (result.hasErrors()) {
            for (ObjectError error : result.getAllErrors()) {
                logger.info("Error: " + error.getCode() + " - "
                        + error.getDefaultMessage());
            }
            return "//fileUpload";
        }

        try{
        MultipartFile multipartFile = uploadFile.getFileData();
        InputStream inputStream = null;
        OutputStream outputStream = null;
        logger.info("---------------"+uploadFile);
        logger.info("---------------------------"+multipartFile);
        if (multipartFile.getSize() > 0) {
            inputStream = multipartFile.getInputStream();
            // File realUpload = new File("C:/");
            outputStream = new FileOutputStream("D:\\Images\\"
                    + multipartFile.getOriginalFilename());
            logger.info("Original File Name"+multipartFile.getOriginalFilename());
            int readBytes = 0;
            byte[] buffer = new byte[8192];
            while ((readBytes = inputStream.read(buffer, 0, 8192)) != -1) {
                logger.info("writing data into file.....");
                outputStream.write(buffer, 0, readBytes);
            }
            outputStream.close();
            inputStream.close();
            session.setAttribute("uploadFile", "D:\\Images\\"
                    + multipartFile.getOriginalFilename());
        }
    } catch(Exception e) {
        e.printStackTrace();
    }
}

我删除了HttpRequest和Response变量,因为它们没有被使用,并将BindingResult对象移动到ModelAttribute旁边。
在访问元素之前,还要尝试在代码中包含空检查。

hi its my multipartresolver D:/Images
public class UploadFile {
    private String filename;
    private CommonsMultipartFile fileData;
    /**
     * @return the filename
     */
    public String getFilename() {
        return filename;
    }
    /**
     * @param filename the filename to set
     */
    public void setFilename(String filename) {
        this.filename = filename;
    }
    /**
     * @return the fileData
     */
    public CommonsMultipartFile getFileData() {
        return fileData;
    }
    /**
     * @param fileData the fileData to set
     */
    public void setFileData(CommonsMultipartFile fileData) {
        this.fileData = fileData;
    }
}

FileUploadController
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
    public String fileupload(
            serviceOrder,HttpSession session,
            ModelMap model, HttpServletRequest request,UploadFile uploadFile,
            HttpServletResponse response, Object command, BindingResult result) throws Exception {

        if (result.hasErrors()) {
            for (ObjectError error : result.getAllErrors()) {
                logger.info("Error: " + error.getCode() + " - "
                        + error.getDefaultMessage());
            }
            return "//fileUpload";
        }

        try{
        MultipartFile multipartFile = uploadFile.getFileData();
        InputStream inputStream = null;
        OutputStream outputStream = null;
        logger.info("---------------"+uploadFile);
        logger.info("---------------------------"+multipartFile);
        if (multipartFile.getSize() > 0) {
            inputStream = multipartFile.getInputStream();
            // File realUpload = new File("C:/");
            outputStream = new FileOutputStream("D:\\Images\\"
                    + multipartFile.getOriginalFilename());
            logger.info("Original File Name"+multipartFile.getOriginalFilename());
            int readBytes = 0;
            byte[] buffer = new byte[8192];
            while ((readBytes = inputStream.read(buffer, 0, 8192)) != -1) {
                logger.info("writing data into file.....");
                outputStream.write(buffer, 0, readBytes);
            }
            outputStream.close();
            inputStream.close();
            session.setAttribute("uploadFile", "D:\\Images\\"
                    + multipartFile.getOriginalFilename());
        }
    } catch(Exception e) {
        e.printStackTrace();
    }
    public String fileupload(HttpSession session,@ModelAttribute UploadFile uploadFile,BindingResult result){