Я работаю весной mvc с tomcat6. Я попытался загрузить файл и сделать это с помощью военного развертывания с помощью tomcat8.Загрузка файла не работает весной mvc и tomcat6
Но я получаю следующую ошибку при использовании той же войны с развертыванием tomcat6.
org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'userId' is not present
Мой полный код следующим образом,
Добавленные банки в ПОМ
<!-- Apache Commons Upload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<!-- Apache Commons Upload -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.0.1</version>
</dependency>
Добавлен боб для загрузки в applicationContext.xml
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10000000" />
</bean>
контроллер, возвращающие идента
public class UploadDocController extends AbstractController {
@Resource
private UserService userService;
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Long userId = userService.getLoggedInUser(request).getId();
ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadmain);
modelAndView.addObject("userId", userId);
return modelAndView;
}
}
JSP:
<form method="POST" enctype="multipart/form-data" action="upload.htm">
File to upload:
<input type="file" name="file"><br />
<input type="hidden" name="userId" value="${userId}"><br /> <br />
<input type="submit" value="Upload">
</form>
FileUploadController.java
@Controller
public class FileUploadController {
@Resource
private CollectionsRepository collectionsRepository;
@RequestMapping(value="/upload", method=RequestMethod.GET)
public @ResponseBody String provideUploadInfo() {
return "You can upload a file by posting to this same URL.";
}
@RequestMapping(value="/upload.htm", method=RequestMethod.POST)
public ModelAndView handleFileUpload(@RequestParam(value ="userId") String userId,
@RequestParam(value ="file") MultipartFile file){
System.out.println("userId--------"+userId);
if (!file.isEmpty()) {
try {
String filePath = "/home/ubuntu/analyzer/LOS/";
byte[] bytes = file.getBytes();
File newFile = new File(filePath+""+file.getOriginalFilename());
BufferedOutputStream stream =
new BufferedOutputStream(new FileOutputStream(newFile));
stream.write(bytes);
stream.close();
List<BankStatementError> errorList = new ArrayList<BankStatementError>();
Excelsheetreader esr = new Excelsheetreader();
List<String> listaddSN = esr.GetCalculation(Long.parseLong(userId), filePath+""+file.getOriginalFilename());
newFile.delete();
for (int i = 0; i < listaddSN.size(); i++) {
String bank = listaddSN.get(i);
BankStatementError error = collectionsRepository.getErrorByBank(bank);
errorList.add(error);
}
ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadsuccess);
modelAndView.addObject("errorList", errorList);
return modelAndView;
} catch (Exception e) {
ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadexecption);
return modelAndView;
}
} else {
ModelAndView modelAndView = new ModelAndView(UploadDocView.uploadempty);
return modelAndView;
}
}
}
Ошибка я получаю
org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'userId' is not present
Есть ли другой способ сделать это с помощью tomcat6? надеюсь, кто-то предложит в этом.
Заранее спасибо ..
скриншот ..
Но userId доступен на странице, в то время как я проверяю элемент в браузере. – DevGo
, пожалуйста, обновите это с помощью снимка экрана. –
обновил мой код, пожалуйста, посмотрите сейчас. – DevGo