分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

从前台上传文件到指定路径

发布时间:2023-09-06 01:22责任编辑:熊小新关键词:暂无标签

针对springMVC上传文件

         String savePath = categoryService.getCategoryByCode("KY_ANNEX_FILE_PATH").getDescription();//保存的文件路径 ???????????????File file = new File(savePath); ???????????????????????????????if (!file.exists() && !file.isDirectory()) {//判断上传文件的保存目录是否存在 ???????????????????file.mkdir();//创建目录 ???????????????} ???????????????try{ ???????????????????//使用Apache文件上传组件处理文件上传步骤: ???????????????????????????????????????DiskFileItemFactory factory = new DiskFileItemFactory();//1、创建一个DiskFileItemFactory工厂 ???????????????????????????????????????ServletFileUpload upload = new ServletFileUpload(factory);//2、创建一个文件上传解析器 ???????????????????????????????????upload.setHeaderEncoding("UTF-8"); ????//解决上传文件名的中文乱码 ???????????????????????????????????????if(!ServletFileUpload.isMultipartContent(request)){//3、判断提交上来的数据是否是上传表单的数据 ???????????????????????return null;//按照传统方式获取数据 ???????????????????}//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项 ???????????????????FileItem item = cfile.getFileItem();//springMVC已经解析好了 ???????????????????//如果fileitem中封装的是上传文件 ???????????????????String filename = item.getName();//得到上传的文件名称, ???????????????????//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt ???????????????????//处理获取到的上传文件的文件名的路径部分,只保留文件名部分 ???????????????????filename = filename.substring(filename.lastIndexOf("\\")+1); ???????????????????????????????????????InputStream in = item.getInputStream();//获取item中的上传文件的输入流 ???????????????????????????????????????FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);//创建一个文件输出流 ???????????????????????????????????????byte buffer[] = new byte[1024];//创建一个缓冲区 ???????????????????????????????????????int len = 0;//判断输入流中的数据是否已经读完的标识 ???????????????????????????????????while((len=in.read(buffer))>0){ ???//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据 ???????????????????????????????????????????????out.write(buffer, 0, len);//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中 ???????????????????} ???????????????????????in.close();//关闭输入流 ???????????????????????????????????????out.close();//关闭输出流 ???????????????????????????????????????item.delete();//删除处理文件上传时生成的临时文件 ???????????????}catch (Exception e) { ???????????????}

从前台上传文件到指定路径

原文地址:http://www.cnblogs.com/ShaoXin/p/7771833.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved