MultipartFile 和 CommonsMultipartFile的区别

一、问题发生

     在学习SpringMVC框架时,视频中老师使用CommonsMultipart接受上传的文件,而我以前使用的是MultipartFile接收上传的文件,便想要知道他们的区别。

二、问题解决

查看源码文件

MultipartFile.java

public interface MultipartFile extends InputStreamSource {
    String getName();

    String getOriginalFilename();

    String getContentType();

    boolean isEmpty();

    long getSize();

    byte[] getBytes() throws IOException;

    InputStream getInputStream() throws IOException;

    void transferTo(File var1) throws IOException, IllegalStateException;
}

CommonsMultipartFile.java

public class CommonsMultipartFile implements MultipartFile, Serializable {
    protected static final Log logger = LogFactory.getLog(CommonsMultipartFile.class);
    private final FileItem fileItem;
    private final long size;
    private boolean preserveFilename = false;

    public CommonsMultipartFile(FileItem fileItem) {
        this.fileItem = fi
当使用`MultipartFile multipartFile = new CommonsMultipartFile("file");`这行代码创建`MultipartFile`实例时,可能会遇到错误,原因可能有以下几种: 1. **缺少依赖**:如果你使用的项目没有包含Apache Commons FileUpload库,那么这个类可能不存在。确保你的pom.xml或者build.gradle文件中已经添加了该库的依赖。 Maven示例: ```xml <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> ``` Gradle示例: ```groovy implementation 'commons-fileupload:commons-fileupload:1.4' ``` 2. **编码异常**:如果图片数据不是字节流,或者编码格式不正确,尝试读取时可能会抛出异常。检查图片数据是否正确,并确认其编码。 3. **构造函数错误**:确认你传给`CommonsMultipartFile`构造函数的参数是否正确,`"file"`可能是你上传文件名称的占位符,实际上传时应该提供一个有效的文件名。 4. **权限问题**:如果操作文件的路径没有足够的权限,也可能导致创建临时文件失败。检查当前用户是否有写入临时目录的权限。 5. **内部错误**:如果你看到的是具体的异常堆栈,那将是更详细的错误原因,例如`FileNotFoundException`, `IOException`等。 如果以上都检查无误,还是报错,建议查看具体的错误信息并调试代码,找出具体的原因。同时,记得在处理异常时提供有用的错误提示信息。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月几时有666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值