java图片上传不是必须参数_java – 必需的MultipartFile参数’file’在spri...

我正在尝试将上传图片的功能添加到我的spring mvc应用程序中.

jsp部分:

...

...

组态:

...

class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

...

控制器:

@RequestMapping(value="/member/createCompany/uploadImage", method=RequestMethod.POST)

public @ResponseBody String handleFileUpload(

@RequestParam("file") MultipartFile file){

String name = "image_name";

if (!file.isEmpty()) {

try {

byte[] bytes = file.getBytes();

BufferedOutputStream stream =

new BufferedOutputStream(new FileOutputStream(new File(name + "-uploaded")));

stream.write(bytes);

stream.close();

return "You successfully uploaded " + name + " into " + name + "-uploaded !";

} catch (Exception e) {

return "You failed to upload " + name + " => " + e.getMessage();

}

} else {

return "You failed to upload " + name + " because the file was empty.";

}

}

选择图片后,我点击上传并看到错误信息:

HTTP Status 400 - Required MultipartFile parameter 'file' is not present

我错了什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用`transferTo()`方法将MultipartFile对象保存到目标文件时,如果目标文件已经存在,会抛出`java.nio.file.FileAlreadyExistsException`异常。 要解决这个问题,你可以考虑以下几种方法: 1. 删除目标文件:在调用`transferTo()`方法之前,先判断目标文件是否存在,如果存在则删除。可以使用`Files.deleteIfExists(Path path)`方法来删除文件。 ```java import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; // ... Path destPath = Path.of("目标文件路径"); if (Files.exists(destPath)) { Files.delete(destPath); } multipartFile.transferTo(destPath.toFile()); ``` 2. 使用不同的目标文件名:如果不要求使用相同的文件名保存上传的文件,可以为每个上传的文件生成一个唯一的文件名,避免文件重名。 ```java import java.util.UUID; import org.apache.commons.io.FilenameUtils; // ... String originalFilename = multipartFile.getOriginalFilename(); String extension = FilenameUtils.getExtension(originalFilename); String newFilename = UUID.randomUUID().toString() + "." + extension; Path destPath = Path.of("目标文件夹路径", newFilename); multipartFile.transferTo(destPath.toFile()); ``` 3. 覆盖目标文件:如果允许覆盖已存在的目标文件,可以使用`StandardCopyOption.REPLACE_EXISTING`选来覆盖。 ```java import java.nio.file.StandardCopyOption; // ... Path destPath = Path.of("目标文件路径"); multipartFile.transferTo(destPath.toFile(), StandardCopyOption.REPLACE_EXISTING); ``` 根据你的具体需求,选择适合的解决方法来处理`java.nio.file.FileAlreadyExistsException`异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值