Java中将File转化为MultipartFile的操作
话不多说直接上代码,简单明了
importjava.io.File; importjava.io.FileInputStream; importorg.springframework.web.multipart.MultipartFile; importorg.springframework.mock.web.MockMultipartFile; importorg.apache.http.entity.ContentType; FilepdfFile=newFile("D://test.pdf"); FileInputStreamfileInputStream=newFileInputStream(pdfFile); MultipartFilemultipartFile=newMockMultipartFile(pdfFile.getName(),pdfFile.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(),fileInputStream);
不少网友反馈说要下jar包的依赖,如下
jar包依赖:
org.apache.httpcomponents httpcore 4.4.9 org.springframework spring-test 5.1.6.RELEASE
补充知识:SPRINGMVC文件上传功能关于不能实例化MultipartFile对象原因分析
实现文件上传有几个需要注意的地方
1、文件上传的HTML,需要在form中加入enctype="multipart/form-data"
2、在Spring的配置文件中需要指定org.springframework.web.multipart.commons.CommonsMultipartResolver。
3、在我们执行文件上传方法的Controller类上面需要加入@RequestParam注解或在Spring的配置文件中加入
@RequestMapping("upload.do") publicStringupload(@RequestParamMultipartFilefile){
如果在我们不加入@RequestParam注解且没有加入
javax.servlet.ServletException:org.springframework.web.util.NestedServletException:Requestprocessingfailed;nestedexceptionisorg.springframework.beans.BeanInstantiationException:Failedtoinstantiate[org.springframework.web.multipart.MultipartFile]:Specifiedclassisaninterface atorg.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) atorg.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) atorg.eclipse.jetty.server.Server.handle(Server.java:531) atorg.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) atorg.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) atorg.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) atorg.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) atorg.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) atorg.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:760) atorg.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:678) atjava.lang.Thread.run(Thread.java:745)
注:个人比较建议在配置文件中加入annotation-driven用于打开注解驱动。这样我们在做文件上传时,就不需要在每个上传的文件对象上加入@RequestParam的注解了。
以上这篇Java中将File转化为MultipartFile的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。