Загрузка файла с использованием Spring MVC и CommonsMultipartResolver не работает должным образом - PullRequest
0 голосов
/ 18 ноября 2010

Я пытаюсь загрузить файлы с помощью Spring CommonsMultipartResolver, однако контроллер не распознается. Я получаю сообщение об ошибке: «Запрошенный ресурс (/WebIDE/WEB-INF/views/file/upload.jsp) недоступен."

Я добавил в мою библиотеку commons-fileupload-1.2.2.jar и commons-io.1.3.2.jar. В контексте приложения я добавил следующее:

<context:component-scan base-package="org.webide.mvc" />

<bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

  <!-- specify maximum file size in bytes -->
  <property name="maxUploadSize" value="100000"/>
</bean>

Я использую Pojo в качестве моего контроллера:

@Controller
@RequestMapping (value = "/file")
public class FileController {

  @RequestMapping (value = "/upload")
  public String uploadFile(@RequestParam("file") CommonsMultipartFile file){
    if (!file.isEmpty()){
      byte fileBytes[] = file.getBytes();
      return "mainView";
    }else{
      return "errorView";
    }
  }

На данный момент мой html довольно прост:

<form method="post" action="file/upload" enctype="multipart/form-data">
            <input type="text" name="name"/>
            <input type="file" name="file"/>
            <input type="submit"/>
</form>

Не могли бы вы дать мне знать, если я что-то упустил? Спасибо

1 Ответ

0 голосов
/ 19 ноября 2010

Основной URL был http://localhost:8084/WebIDE/,, тогда action = "/ file / upload" должен отправить запрос классу, помеченному @Controller. Я установил точку останова, а контроллер вообще не поднимался.

Мне пришлось изменить мою весеннюю конфигурацию, чтобы скопировать все, что указано в контексте приложения (см. Выше), в сервлет-диспетчер mvc-config.xml, а также изменить способ их объявления так, чтобы контекст был родителем mvc-config .xml

Похоже, все получилось! :)

Еще раз спасибо за вашу помощь и предложения.

...