将文件传输到Tomcat位置

时间:2013-05-06 04:18:48

标签: tomcat spring-mvc file-upload

我正在尝试在Spring应用程序中实现文件上载功能。

目前,我使用HTML5表单的multiple属性将多个文件发送到服务器。这些文件正在控制器,但是我将它们转移到服务器目的地时遇到了问题。

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleUpload(@RequestParam("files[]") List<MultipartFile> files, Model model) {

    String fileName;
    File transferFile;
    String filePath = System.getProperty("catalina.base") + File.separator + "resources" + File.separator;
    ArrayList<File> fileList = new ArrayList<File>(files.size());
    ArrayList<String> fileNameList = new ArrayList<String>(files.size());


    for (MultipartFile file : files) {

        fileName = filePath + file.getOriginalFilename();
        transferFile = new File(fileName);
        fileNameList.add(fileName);

        try {
            if (transferFile.exists()) {
                logger.info("Successful Transfer!");
                file.transferTo(transferFile);
            else 
                logger.info("Could not create file at " + fileName);

我省略了catch块和其他日志记录但是transferFile对象已创建但该位置不存在。

如何在指定位置创建文件?

1 个答案:

答案 0 :(得分:2)

  1. 检查您在表单标记中添加了enctype ='multipart / form-data'。
  2. 检查你在配置文件spring.xml中的定义

     <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
     <!-- one of the properties available; the maximum file size in bytes -->
              <beans:property name="maxUploadSize" value="100000000" />
     </beans:bean>
    

    2.检查文件标记的名称属性,并在控制器方法handleUpload中使用它。

    3.检查您是否在指定位置创建了文件,用户从中转移文件,即检查transferFile是否在目的地创建文件。