springMVC直接为文件上传提供支持,该支持通过多解析器实现,实现类为CommonsMultipartResovler。
依赖: commons-file upload-1.2.jar commons-io-1.3.2.jar
上传一般文件:1.配置虚拟目录在eclipse的Tomcat上配置图片虚拟目录(虚拟图片服务器),访问http://localhost 33608080/pic/XXX.jpg时虚拟磁盘
下图:
将图像复制到要存储图像的文件夹中,然后使用浏览器进行访问
测试如下图所示的效果。
2 .加入jar包以实现需要参与图像上传的jar包。 下图:
下载地址: https://download.csdn.net/download/weixin _ 39556885/9928690
3359 download.csdn.net/download/huoniuyi 1230/10111679
将两个jar包放在项目的lib文件夹中
3 .设置上传解析器在springmvc.xml中设置文件上传解析器
! -文件上传,id必须设置为多结果-
bean id='multipartResolver '
class=' org.spring framework.web.multipart.com mons.commonsmultipartresolver '
! -- UTF-8必须一直与pageEncoding属性相同-
property name=' default encoding ' value=' utf-8 ' /
! -设置文件上传大小-
属性名称=' maxuploadsize ' value=' 5000000 ' /
/bean
4 .修改JSP页面要求将表单的method设置为POST,将enctype设置为multipart/form-data。 仅在这种情况下,浏览器才会将用户选择的文件作为二进制数据发送到服务器。
enctype='multipart/form-data '
5 .图片上传产品更新方式添加图片上传逻辑控制器
//*
*商品更新
* @paramitem
* @return
* @throwsException
*/
@requestmapping(updateitem ) )。
3358 www.Sina.com/stringupdateitembyid (item item,MultipartFile pictureFile )publicException {
//设定图像名称,使其不能重复,使用uuid
String picName=UUID.randomUUID ().toString );
//获取文件名
stringoriname=picturefile.getoriginalfilename (;
//获取图像后缀
string extname=oriname.substring (oriname.lastindexof ('.' ) );
//开始上传
picture file.transferto (http://www.Sina.com/file (c :/upload/image/' picname extname ) );
//将图像名称设置为产品
item.setpic(picnameextname;
----------------
//更新商品
33558 www.Sina.com/. item service.updateitembyid (item );
3358 www.Sina.com/' forward :/item edit.action ';
}
效果,如下图:
上传ajax文件:如果表单的数据很大,将表单和图片一起上传会相互影响,导致上传效率降低,因此可以异步上传图片。
1.jsp :
2 .控制器:
MultipartFile对象的典型方法: byte[] getBytes (:获取文件数据String getContentType[] ) :获取文件的MIME类型,例如,使用image/jpeg等InputStream getInputStream ()文件流String getName ) )表单中的文件组件的名称String getOriginalFilename )上传teboolean isEmpty () :上传文件voidtransferto ) (filedest ) :将上传文件保存在一个目录文件中的文件类型是图像: image/jpeg
image/png
image/gif
txt:text/plain
PPT:application/vnd.ms-PowerPoint
excel:application/vnd.open XML formats-office document.spread sheet ml.sheet
word:application/vnd.open XML formats-office document.wordprocessingml.document
您可以根据文件的类型和大小来限制上载的文件的类型和大小。