java.lang.NumberFormatException:对于输入字符串:“”发生
发布时间:2020-12-15 04:23:21 所属栏目:Java 来源:网络整理
导读:我在服务器端部署应用程序时遇到问题(在本地计算机上一切正常).在我的应用程序中,用户可以使用multiupload上传文件.这是我的控制器: @Controllerpublic class FileUploadController { @Autowired private StoryService storyService; @Autowired private Ph
我在服务器端部署应用程序时遇到问题(在本地计算机上一切正常).在我的应用程序中,用户可以使用multiupload上传文件.这是我的控制器:
@Controller public class FileUploadController { @Autowired private StoryService storyService; @Autowired private PhotoService photoService; @RequestMapping("/uploader") public String home() { // will be resolved to /views/fileUploader.jsp return "admin/fileUploader"; } @RequestMapping(value = "/admin/story/upload",method = RequestMethod.POST) public @ResponseBody String upload(MultipartHttpServletRequest request,HttpServletResponse response,HttpServletRequest req) throws IOException { //get story id Integer story_id = Integer.valueOf(req.getParameter("story_id")); Story story = storyService.findById(story_id); // Getting uploaded files from the request object Map<String,MultipartFile> fileMap = request.getFileMap(); // Iterate through the map for (MultipartFile multipartFile : fileMap.values()) { // Save the file to local disk String name = Long.toString(System.currentTimeMillis()); //original size saveFileToLocalDisk(multipartFile,name + ".jpg"); //medium size Thumbnails.of(convertMultifileToFile(multipartFile)).size(1800,2400) .toFile(new File(getDestinationLocation() + "medium_" + name)); //thumbnail size Thumbnails.of(convertMultifileToFile(multipartFile)).size(600,800) .toFile(new File(getDestinationLocation() + "thumb_" + name)); //Save to db savePhoto(multipartFile,name,story); } return "redirect:/admin"; } private void saveFileToLocalDisk(MultipartFile multipartFile,String name) throws IOException,FileNotFoundException { FileCopyUtils.copy(multipartFile.getBytes(),new FileOutputStream(getDestinationLocation() + name)); } private String getOutputFilename(MultipartFile multipartFile) { return getDestinationLocation() + multipartFile.getOriginalFilename(); } private Photo savePhoto(MultipartFile multipartFile,String name,Story story) throws IOException { Photo photo = new Photo(); if (story != null) { photo.setName(name); photo.setStory(story); photoService.addPhoto(photo); } return photo; } private String getDestinationLocation() { return "/var/www/static/images/"; } public File convertMultifileToFile(MultipartFile file) throws IOException { File convFile = new File(file.getOriginalFilename()); convFile.createNewFile(); FileOutputStream fos = new FileOutputStream(convFile); fos.write(file.getBytes()); fos.close(); return convFile; } } 当我尝试在服务器上上传图像时,我遇到以下异常: SEVERE: Servlet.service() for servlet [mvc-dispatcher] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NumberFormatException: For input string: ""] with root cause java.lang.NumberFormatException: For input string: "" 无法弄清楚它意味着什么以及如何解决它.顺便说一句,我注意到当我上传100-200 KB的文件时一切正常,当文件为4-5 MB时,我会遇到异常. 提前致谢! 解决方法
似乎“story_id”并不总是设定;与文件大小的相关可能是也可能不是巧合.
您应该通过将“story_id”参数视为可选项来保护您的代码免受此类客户端错误的影响.这对于所有请求参数都是一个好主意,因为它可以防止服务器端因不正确形成的请求而崩溃: String storyIdStr = req.getParameter("story_id"); if (storyIdStr == null || storyIdStr.length() == 0) { // Deal with the error } Integer story_id = null; try { story_id = Integer.valueOf(storyIdStr); } catch (NumberFormatException nfe) { // Deal with the error } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |