石排东莞网站建设,视频网站的建设目标,电商扶贫网站建设,网络运营托管1.建普通maven项目#xff0c;或者maven项目#xff0c;这里以普通maven为例#xff0c;区别的jar包的导入方式啦
到中央仓库下载哦 2.结构 3.写fileservlet public class FileServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpSe…1.建普通maven项目或者maven项目这里以普通maven为例区别的jar包的导入方式啦
到中央仓库下载哦 2.结构 3.写fileservlet public class FileServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//判断上传的文件是普通的表单还是带文件的表单以表单方式提交if(!ServletFileUpload.isMultipartContent(req)){return;//普通表单终止方法运行}//创建文件上传后的保存路径String uploadPaththis.getServletContext().getRealPath(/WEB-INF/upload);File uploadFilenew File(uploadPath);if(!uploadFile.exists()){uploadFile.mkdir();//不存在就创建这个目录}//缓存临时文件放置String tmpPaththis.getServletContext().getRealPath(/WEB-INF/tmp);File filenew File(tmpPath);if(!file.exists()){file.mkdir();//不存在就创建这个目录临时}//处理上传的文件一般通过流获取try{//创建DiskFileItemFactory对象处理文件上传限制 大小 路径DiskFileItemFactory factorygetDiskFileItemFactory(file);//获取ServletFileUploadServletFileUpload uploadgetServletFileUpload(factory);//处理上传的文件String msguploadParseRequest(upload,req,uploadPath);//servlet请求转发req.setAttribute(msg,msg);req.getRequestDispatcher(info.jsp).forward(req,resp);} catch (Exception e) {e.printStackTrace();}}private static String uploadParseRequest(ServletFileUpload upload, HttpServletRequest req, String uploadPath) throws FileUploadException, IOException {String msg;ListFileItemfileItemsupload.parseRequest(req);for(FileItem fileItem:fileItems){if(fileItem.isFormField()){String namefileItem.getFieldName();String valuefileItem.getString(UTF-8);System.out.println(name:value);}else {String uploadFileNamefileItem.getName();System.out.println(文件uploadFileName);if(uploadFileName.trim().equals()||uploadFileNamenull){continue;}//获取文件名/和后缀名.) /img.pngString fileNameuploadFileName.substring(uploadFileName.lastIndexOf(/)1);String fileExtNameuploadFileName.substring(uploadFileName.lastIndexOf(.)1);System.out.println(文件消息fileName类型fileExtName);//UUID 保证文件名唯一//UUID.randomUUID()随机生成一个通用码String uuidPath UUID.randomUUID().toString();String realPathuploadPath/uuidPath;File realPathFilenew File(realPath);if(!realPathFile.exists()){realPathFile.mkdir();}//获取上传文件的流InputStream inputStreamfileItem.getInputStream();FileOutputStream fosnew FileOutputStream(realPath/fileName);//缓冲区byte[]buffernew byte[1024*1024];//判断读取完成int len0;while ((leninputStream.read(buffer))0){fos.write(buffer,0,len);}fos.close();inputStream.close();msgsuccess;fileItem.delete();}}return msg;}private static ServletFileUpload getServletFileUpload(DiskFileItemFactory factory) {ServletFileUpload uploadnew ServletFileUpload(factory);//监听文件上传速度upload.setProgressListener(new ProgressListener() {Overridepublic void update(long l, long l1, int i) {System.out.println(总大小l1已上传l);}});upload.setHeaderEncoding(UTF-8);upload.setFileSizeMax(1024*1024*10);//10241kb*102410Mreturn upload;}private static DiskFileItemFactory getDiskFileItemFactory(File file) {DiskFileItemFactory factorynew DiskFileItemFactory();//设置缓冲区文件大于缓冲区放到临时文件factory.setSizeThreshold(1024*1024);factory.setRepository(file);return factory;}Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}4.index.jsp % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
body
form action${pageContext.request.contextPath}/upload.do enctypemultipart/form-data methodpost上传用户input typetext nameusernamebrpinput typefile namefile1/ppinput typefile namefile1/ppinput typesubmit||input typereset/p
/form
/body
/html5.info % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
body
%--上传文件大小有限制get--%
${msg}
/body
/html