加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读