最近打算学习java ,根据自己看到的写点东西,方便大家参考,如果对您有用,请点赞
1、准备两个jar包
http://commons.apache.org/proper/commons-fileupload/
http://commons.apache.org/proper/commons-io/
2、建立javaweb工程,在lib 中导入自己的jar 包(lib 目录在WEB-INF中)
3、上传
前端写上传界面
后端写上传逻辑
try { DiskFileItemFactory fileItemFactory = new DiskFileItemFactory(); File tmp=new File(req.getSession().getServletContext().getRealPath("file")); fileItemFactory.setRepository(tmp); ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory); List<FileItem> list = servletFileUpload.parseRequest(req); Iterator<FileItem> items=list.iterator(); while (items.hasNext()){ FileItem item=items.next(); if(item.isFormField()){ //文本 }else{ String fileName=item.getName(); long size=item.getSize(); System.out.print(fileName+"\n"); System.out.print(size); InputStream inputStream=item.getInputStream(); String path=req.getServletContext().getRealPath("file/"+fileName); OutputStream outputStream=new FileOutputStream(path); int temp=0; while ((temp=inputStream.read())!=-1){ outputStream.write(temp); } outputStream.close(); inputStream.close(); System.out.print("上传成功"); } } } catch (FileUploadException e){ e.printStackTrace(); }
4、下载
前端
后端
req.setCharacterEncoding("UTF-8"); resp.setContentType("application/x-msdownload;charset=utf-8"); String fileName=req.getParameter("name"); resp.setHeader("Content-Disposition","attachment;filename="+fileName); OutputStream outputStream=resp.getOutputStream(); String path=req.getServletContext().getRealPath("file/"+fileName); InputStream inputStream=new FileInputStream(path); int tmp=0; while ((tmp=inputStream.read())!=-1){ outputStream.write(tmp); } outputStream.close(); inputStream.close();
如果有帮助,请点小♥