java文件上传功能
来源:互联网 发布:侠盗猎车几windows xp 编辑:程序博客网 时间:2024/05/19 16:05
java文件上传功能
//jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="${pageContext.request.contextPath }/Upload3" method="post" enctype="multipart/form-data"> 用户名;<input type="text" name="username"/><br/> 照 片:<input type="file" name="zhaoPian"/><br/> <input type="submit" value="上传"/> </form> </body></html>
//servlet
package com.kero99.ygc.test; import java.io.File;import java.io.IOException;import java.util.List;import java.util.UUID;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.io.FilenameUtils; public class Upload3 extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置编码响应到浏览器的格式 response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //设置存的路径 存的文件需要在tomcat项目右键 Browse里找到/WEB-INF/files String savepath=getServletContext().getRealPath("/WEB-INF/files"); //创建磁盘文件工厂 需要导入上传文件jar包 由工厂接受 解析器处理文件 DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(); //创建文件解析器 ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory); try { //设置上传文件的编码格式 fileUpload.setHeaderEncoding("UTF-8"); //接受请求 文件解析器解析请求 返回List<FileItem>接口 List<FileItem> list=fileUpload.parseRequest(request); //迭代 FileItem接口处理文件 for(FileItem item:list){ //如果fileitem中封装的是普通输入项的数据 if(item.isFormField()){ //获取文本内容 eg: <input type="text" name="username"/> getFieldName为文本项内容=username String name=item.getFieldName(); //获取文本内容 eg:<input type="text" name="username"/> getString=输出的文本 String value=item.getString("UTF-8"); //文本内容设置字符集为utf-8 String value1=new String(name.getBytes("iso8859-1"),"UTF-8"); }else{//else 为上传的是文件 //获取上传文件的名字 String filename1=item.getName(); String filename=UUID.randomUUID().toString().replace("-","")+filename1; int hCode = filename.hashCode(); String hex = Integer.toHexString(hCode); File file = new File(savepath,hex.charAt(0)+"/"+hex.charAt(1)); if(!file.exists() && !file.isDirectory() &&!filename1.equals("") && filename1!=null && !filename1.trim().equals("")){ file.mkdirs(); String extension = FilenameUtils.getExtension(filename); if(!("jsp".equals(extension)||"txt".equals(extension))){ File file1=new File(file,filename); item.write(file1); response.getWriter().print("success!"); }else{ response.getWriter().print("文件不能为jsp和exe类型,请从新上传..."); } }else{ response.getWriter().print("不能是空文件"); } } } } catch (Exception e) { e.printStackTrace(); } } }
//文件上传重构版
package com.kero99.ygc.test;import java.io.File;import java.io.IOException;import java.util.List;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.io.FilenameUtils;import com.sun.corba.se.spi.legacy.connection.GetEndPointInfoAgainException;public class Upload extends HttpServlet{ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置响应浏览器格式 response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String savapath=getServletContext().getRealPath("/WEB-INF/files"); DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(); ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory); try { fileUpload.setHeaderEncoding("utf-8"); List<FileItem> list=fileUpload.parseRequest(request); for(FileItem item:list){ if(item.isFormField()){ String name=item.getFieldName();//获取文本项 String value=item.getString("utf-8");//获取文本内容 String value1=new String(name.getBytes("iso8859-1"),"UTF-8"); }else{//为上传的是文件 String filename1=item.getName(); String filename=UUID.randomUUID().toString().replace("-","")+filename1; //目录打散方法 a/b String path=getFileChildPath(filename); File file=new File(savapath,path); if(!file.exists() && !file.isDirectory()){ file.mkdirs(); String extension=FilenameUtils.getExtension(filename); if(!("jsp".equals(extension)||"txt".equals(extension))){ File file1=new File(file,filename); item.write(file1); response.getWriter().print("success"); }else{ response.getWriter().print("文件不能为jsp和exe类型"); } }else{ response.getWriter().print("文件不能是空的"); } } } } catch (Exception e) { e.printStackTrace(); } } //目录打散 public String getFileChildPath(String filename){ int hCode=filename.hashCode(); String hex=Integer.toHexString(hCode); String path=hex.charAt(0)+"/"+hex.charAt(1); return path; } @Override public void destroy() { // TODO Auto-generated method stub super.destroy(); } @Override public void init() throws ServletException { // TODO Auto-generated method stub super.init(); }}
0 0
- java文件上传功能
- Java实现文件上传功能
- java中,文件上传功能
- Java 文件上传功能Controller
- java完成文件上传功能
- JAVA实现邮箱上传文件功能
- java开发常用功能一---文件上传
- java web文件上传功能实现
- java实现文件上传ftp服务器功能
- Java最基础的文件上传功能
- java实现文件上传,文件下载功能 源码
- 多文件上传功能
- JSF文件上传功能
- 文件上传功能
- C#文件上传功能
- php文件上传功能
- 文件上传功能JQuery
- j2ee 文件上传功能
- 参数传递(值传递与引用传递)
- java applet打印时没反应
- 判断电容极性
- android中的category
- c语言线性表顺序存储结构详解
- java文件上传功能
- JSP动作
- 网页制作小感悟
- mfc 中的_T
- html编程思想
- JS模拟自由落体活动
- JAVA实现替换空格(《剑指offer》牛客网StringBuffer)
- 支付宝支付生成二维码图片
- 那些从阿里离职的人现在都在干嘛?