java - 验证上传的文件是否为 jpg 和 png 并保存到静态文件夹

标签 java file-upload

我正在使用 Spring Boot,我想通过表单上传图像。

它可以工作,但有两个问题:

1) 我不知道如何验证文件以确保它是 jpgpng

2) 我只能上传到root文件夹,不能上传到static文件夹,我不知道如何设置资源的正确路径/static 文件夹

@PostMapping("/add")
    public String add(@Valid Product product, @RequestParam MultipartFile file, BindingResult bindingResult,
            RedirectAttributes redirectAttributes, Model model) {
...

try {
            byte[] bytes = file.getBytes(); // how to validate this?
            Path path = Paths.get( file.getOriginalFilename()); // how to set path here?
            Files.write(path, bytes);

            redirectAttributes.addFlashAttribute("message",
                    "You successfully uploaded '" + file.getOriginalFilename() + "'");

        } catch (IOException e) {
            System.out.println("!!!!!!!!!!!!! Image uploaded problem !!!!!!!!!!!!!!");
            e.printStackTrace();
        }

...
}

最佳答案

获取文件扩展名

String extension = FilenameUtils.getExtension(file.getOriginalFilename());

路径

 InputStream in = file.getInputStream();
 File destination = new File("/some-location/" + file.getOriginalFilename());
 FileUtils.copyInputStreamToFile(in, destination);

关于java - 验证上传的文件是否为 jpg 和 png 并保存到静态文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55824739/

相关文章:

php - jquery ajax提交表单上传图片

c# - ASP.NET 将文件上传到 Amazon S3

java - 如何生成具有特定概率密度函数的随机数?

java - 列出android中下载目录中的文件

java - 每天将 1,000 个(不同的)内容文件上传到 GAE Java Web 应用程序的最佳方式是什么?

jquery - Google 应用引擎 Blobstore 上传 URL 过期

Java ArrayList get() 方法不返回 Point 对象?

java - 没有名为 ws-persist 的 EntityManager 持久性提供程序

java - 这是图像分割吗?

reactjs - 在 ReactJS 中使用 .fetch() 上传文件