2013-05-06 2 views
0

Я пытаюсь реализовать функцию загрузки файлов в приложении Spring.Перенос файла в Tomcat

В настоящее время я использую атрибут формы 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); 

я ушел из стопорных блоков и другое протоколирование, но объект transferFile создаются, но не существует в месте.

Как создать файл в указанном месте?

ответ

2
  1. проверить, что вы добавили enctype = 'multipart/form-data' в тег формы.

Проверить можно определить в файле конфигурации 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.check именем atribute вашего файла тега и использовать то же самое в вашем методе контроллера handleUpload.

3. Проверьте, создан ли файл или нет в указанном вами месте, в котором вы передаете файл от пользователя. I.e. Check transferFile создает файл или нет в пункте назначения.

+0

Все 3 сделаны. Что касается второй точки, то при переходе через отладчик я вижу список 'files []' как LinkedList, и имена файлов есть. – Jason

+0

transferFile = новый файл (имя_файла); Добавьте transferFile.createNewFile(), чтобы он решил вашу проблему. Поскольку вы не создали новый файл, поэтому ваше условие transferFile.exists() здесь не работает. Теперь оно будет работать отлично. – Ruju

+0

Это было решение! Благодаря! – Jason

Смежные вопросы