专注聊城做网站的公司net网站开发net网站开发
专注聊城做网站的公司,net网站开发net网站开发,百度惠生活怎么优化排名,小程序制作的方法文件上传下载
SpringMVC封装了Tomcat的上传文件功能 MultipartResolver接口
MultipartResolver接口定义了文件上传过程中的相关操作#xff0c;并对通用性操作进行了封装MultipartResolver接口底层实现类CommonsMultipartResovlerCommonsMultipartResovler并未自主实现文件上…文件上传下载
SpringMVC封装了Tomcat的上传文件功能 MultipartResolver接口
MultipartResolver接口定义了文件上传过程中的相关操作并对通用性操作进行了封装MultipartResolver接口底层实现类CommonsMultipartResovlerCommonsMultipartResovler并未自主实现文件上传下载对应的功能而是调用了apache的文件上传下载组件
pom.xml dependencies!-- servlet3.0规范的坐标 --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency!--jsp坐标--dependencygroupIdjavax.servlet.jsp/groupIdartifactIdjsp-api/artifactIdversion2.1/versionscopeprovided/scope/dependency!--spring的坐标--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.1.9.RELEASE/version/dependency!--springmvc的坐标--dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.1.9.RELEASE/version/dependency!--文件上传下载--dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.4/version/dependency/dependenciesbuild!--设置插件--plugins!--具体的插件配置--plugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport80/portpath//path/configuration/plugin/plugins/buildSpringMVC配置 mvc:annotation-driven/context:component-scan base-packagecom.itzhuzhu/!--配置文件上传处理器--bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver!--设置上传大小--property namemaxUploadSize value1024000000//bean控制器
RequestMapping(value /fileupload)
public void fileupload(MultipartFile file){// transferTo上传文件用的file.transferTo(new File(file.png));
}page.jsp
%page pageEncodingUTF-8 languagejava contentTypetext/html;UTF-8 %
h1测试文件上传下载功能/h1fileupload.jsp
%page pageEncodingUTF-8 languagejava contentTypetext/html;UTF-8 %form action/fileupload methodpost enctypemultipart/form-data%--文件上传表单的name属性值一定要与controller处理器中方法的参数对应否则无法实现文件上传--%上传LOGOinput typefile namefile/br/上传照片input typefile namefile1/br/上传任意文件input typefile namefile2/br/input typesubmit value上传/
/form文件上传注意事项
文件命名问题 获取上传文件名并解析文件名与扩展名文件名过长问题(可以把用户上传的文件名保存到数据库用UUID生成一个新的文件名代替它。)文件保存路径重名问题
RequestMapping(value /fileupload)
//参数中定义MultipartFile参数用于接收页面提交的typefile类型的表单要求表单名称与参数名相同
public String fileupload(MultipartFile file,MultipartFile file1,MultipartFile file2, HttpServletRequest request) throws IOException {System.out.println(file upload is running ...file);// MultipartFile参数中封装了上传的文件的相关信息// System.out.println(file.getSize()); 文件大小// System.out.println(file.getBytes().length); 文件所有的字节都在这个里面// System.out.println(file.getContentType()); 文件的类型// System.out.println(file.getName()); file文件名// System.out.println(file.getOriginalFilename()); 上传的文件名// System.out.println(file.isEmpty()); 是否为空//首先判断是否是空文件也就是存储空间占用为0的文件if(!file.isEmpty()){//如果大小在范围要求内正常处理否则抛出自定义异常告知用户未实现//获取原始上传的文件名可以作为当前文件的真实名称保存到数据库中备用String fileName file.getOriginalFilename();//设置保存的路径String realPath request.getServletContext().getRealPath(/images);//保存文件的方法指定保存的位置和文件名即可通常文件名使用随机生成策略产生避免文件名冲突问题file.transferTo(new File(realPath,file.getOriginalFilename()));}//测试一次性上传多个文件if(!file1.isEmpty()){String fileName file1.getOriginalFilename();//可以根据需要对不同种类的文件做不同的存储路径的区分修改对应的保存位置即可String realPath request.getServletContext().getRealPath(/images);file1.transferTo(new File(realPath,file1.getOriginalFilename()));}if(!file2.isEmpty()){String fileName file2.getOriginalFilename();String realPath request.getServletContext().getRealPath(/images);file2.transferTo(new File(realPath,file2.getOriginalFilename()));}// 重名的问题不使用用户上传的文件名把上传的文件名封装成一个变量再使用UUID重新赋一个名这样用户的是用户的服务器的是服务器的String uuid UUID.randomUUID().toString().replace(-,).toUpperCase();return page.jsp;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/90319.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!