this.doPost(请求,响应);
}
/**
* 处理文件上传的邮政
* @预防措施下方的类名出自包导入org。阿帕奇。公地。文件上传。*
*/
受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
//1.设置参数编码
请求。setcharacterencoding(“UTF-8”);
//设置响应数据字符集
回应。setcharacterencoding(“UTF-8”);
//设置响应数据格式
//响应。设置内容类型(' application/JSON;charset=UTF-8 ');
PrintWriter out=响应。getwriter();
//2.创建文件上传处理工厂
DiskFileItemFactory factory=new DiskFileItemFactory();
//3.设置临时文件存放地点
//3.1获取当前网应用程序对象(网页容器在启动时,它会为每个网应用程序都创建一个对应的小型应用程序上下文对象,它代表当前网应用)
servlet上下文servlet上下文=this。getservlet配置().getServletContext();
//3.2获取服务器的临时目录(tomcat、WebLogic)
//D:\ program files(x86)\ APACHE \ TOMCAT \ APACHE-TOMCAT-7。0 .40-x86 \ work \ Catalina \ localhost \ demo
文件存储库=(文件)servlet上下文。get属性(' javax。servlet。语境。tempdir’);
//3.3临时文件将会存储在该目录下
factory.setRepository(储存库);
//4.创建文件上传处理器
servlet文件上传上传=新servlet文件上传(工厂);
//5.判断请求类型是否为文件上传类型
布尔多部分内容=上传。ismultipartcontent(请求);
MapString,String mapData=new HashMapString,String();
//返回信息
字符串msg=
//错误信息
字符串错误msg=
//文件名
字符串文件名="";
if (multipartContent) {
尝试{
//获取请求参数
string param=请求。getparameter(' param 1 ');
系统。出去。println(param);
//6.解析请求信息
ListFileItem items=upload。解析请求(请求);
//7.对所有请求信息进行判断
IteratorFileItem ITER=items。迭代器();
while (iter.hasNext()) {
FileItem item=ITER。next();
//信息为文件格式
如果(!item.isFormField()) {
fileName=processUploadedFile(param,item);
msg='上传成功!';
}
}
} catch (FileUploadException e) {
e。printstacktrace();
msg='上传失败!';
error msg=e . getmessage();
}
}否则{
msg='格式表单类型不是多部分/形式数据,无法上传!';
}
mapData.put('msg ',msg);
mapData.put('errorMsg ',error msg);
mapData.put('fileName ',文件名);
//将地图转成JSON
JSON对象JSON数据=JSON对象。来自对象(mapData);
//返回客户端信息
出去。打印(JSON数据。tostring());
}
/**
* 处理上传的文件
* @param ORG_ID
* @param订单
* @param item
*/
@SuppressWarnings('未使用)
私有字符串processUploadedFile(String param,FileItem item) {
//处理文件上传
字符串字段名=项目。获取字段名();//默认值为文件数据
//获取文件名
字符串文件名=项目。getname();
//内容类型:应用程序/八位字节流
字符串内容类型=项目。获取内容类型();
布尔isin memory=item。isin in memory();
//获取文件大小
long sizeInBytes=item。getsize();
//1.指定文件上传的根路径
字符串路径=this。getservletcontext().获取真实路径('/we b-INF/upload files ');
//2.路径构成:/上传文件/文件名
//TODO可以自定义文件存放路径
//3.根据路径批量创建文件夹
文件文件目录=新文件(路径);
//目录不存在时,再创建
如果(!fileDirectories.exists()) {
文件目录。mkdirs();//所有的文件夹都创建成功才返回真实的
}
//4.文件名格式校验(文件名中不能包含#号)
int index=文件名。(“#”)的索引;
if (index -1) {
fileName=fileName.replace('# ',' _ ');
}
//TODO可以对文件名进行重命名
//5.在指定路径下创建指定名称的文件
文件上传文件=新文件(路径"/"文件名);
//6.判断该文件是否已存在
如果(!uploadedFile.exists()) {
尝试{
//使用了这个方法写入文件,临时文件会被系统自动删除
项目。写(上传的文件);
} catch(异常e) {
e。printstacktrace();
}
}
//返回重名后的文件名
返回文件名;
}
/**
* 处理信息为普通的格式
* @param item
*/
私有void processFormField(FileItem item){
//处理常规表单字段
if (item.isFormField()) {
字符串名称=项目。获取字段名();
字符串值=项目。getstring();
}
}
}
文件查看代码(FileView.java文件)
包控制器.文件处理器
导入Java。io。bufferedinputstream
导入Java。io。bufferedoutputstream
导入Java。io。文件输入流;
导入Java。io。io异常;
导入Java。io。inputstream
导入Java。io。输出流;
导入javax。servlet。servlet上下文;
导入javax。servlet。servlet异常;
导入javax。servlet。http。http servlet
导入javax。servlet。http。http servlet请求;
导入javax。servlet。http。http servlet响应;
公共类文件视图扩展HttpServlet {
private static final long serialVersionUID=1L;
//设定输出的类型
private static final String GIF=' image/GIF;charset=UTF-8 ';
私有静态最终字符串JPG=' image/JPEG;charset=UTF-8 ';
私有静态最终字符串PNG=' image/PNG;charset=UTF-8 ';
私有静态最终字符串PDF=' application/PDF;charset=UTF-8 ';
private static final String ZIP=' application/ZIP;charset=UTF-8 ';
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
this.doPost(请求,响应);
}
/**
* 处理文件查看的邮政
* @抛出IOException
* @预防措施下方的类名出自包导入org。阿帕奇。公地。文件上传。*
*/
受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
//文件流
输入流为=空
//输入缓冲流
BufferedInputStream bis=null
//得到输出流
输出流输出=空
//输出缓冲流
BufferedOutputStream bos=null
//1.设置参数编码
请求。setcharacterencoding(“UTF-8”);
//2.设置响应数据字符集
回应。setcharacterencoding(“UTF-8”);
//3.获取客户端请求参数:文件名
字符串文件名=请求。getparameter(' fileName ');
//4.重置反应
回应。reset();
//5.设置响应数据格式
if (fileName.endsWith(.gif')) {
回应。setcontenttype(GIF);
} else if (fileName.endsWith(.jpg')) {
回应。setcontenttype(JPG);
} else if (fileName.endsWith(.png')) {
回应。setcontenttype(PNG);
} else if (fileName.endsWith(.pdf')) {
回应。setcontenttype(PDF);
} else if (fileName.endsWith(.gif')) {
回应。setcontenttype(GIF);
} else if (fileName.endsWith(.zip')) {
回应。setcontenttype(ZIP);
}
字符串文件路径=' we b-INF/upload files/' fileName;
//获取当前网应用程序
servlet上下文web app=this。get servlet context();
//6.获取指定文件上传的真实路径
文件路径=web app。getrealpath(文件路径);
//7.读取目标文件,通过反应将目标文件写到客户端
is=新文件inputstream(文件路径);
bis=new BufferedInputStream(is);
输出=响应。get output stream();
bos=新缓冲区输出流(输出);
字节数据[]=新字节[1024];//缓冲字节数
int size=bis。读(数据);
而(大小!=-1) {
bos.write(数据,0,大小);
size=bis.read(数据);
}
//关闭流
之二。close();
博斯。flush();//清空输出缓冲流
博斯。close();
输出。close();
}
}
文件下载代码(FileDownload.java文件)
包控制器.文件处理器
导入Java。io。文件输入流;
导入Java。io。io异常;
导入Java。io。inputstream
导入Java。io。输出流;
导入javax。servlet。servlet异常;
导入javax。servlet。http。http servlet
导入javax。servlet。http。http servlet请求;
导入javax。servlet。http。http servlet响应;
公共类文件下载扩展HttpServlet {
private static final long serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
this.doPost(请求,响应);
}
/**
* 处理文件下载的邮政
* @抛出IOException
*/
受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
//1.设置参数编码
请求。setcharacterencoding(“UTF-8”);
//设置响应数据字符集
回应。setcharacterencoding(“UTF-8”);
//1.获得请求文件名
字符串文件名=请求。getparameter(' fileName ');
//2.设置文件哑剧类型(指定要返回内容的类型)
回应。设置内容类型(getServletContext().getMimeType(文件名));
//3.设置内容处置(指定下载该文件时的文件名)
回应。设置标题('内容-处置','附件;fileName=' fileName);
//4.读取目标文件,通过反应将目标文件写到客户端
//4.1 获取目标文件的绝对路径
字符串文件路径=' we b-INF/upload files/' fileName;
文件路径=this。getservletcontext().获取真实路径(文件路径);
//4.2 读取文件
InputStream in=新文件InputStream(文件路径);
//4.3 输出文件
输出流out=响应。获取输出流();
//写文件
int n;
while ((n=in.read())!=-1) {
出去。写(n);
}
英寸close();
出去。close();
}
}
文件删除代码(FileDelete.java文件)
包控制器.文件处理器
导入Java。io。文件;
导入Java。io。文件输入流;
导入Java。io。io异常;
导入Java。io。inputstream
导入Java。io。输出流;
导入javax。servlet。servlet异常;
导入javax。servlet。http。http servlet
导入javax。servlet。http。http servlet请求;
导入javax。servlet。http。http servlet响应;
公共类文件删除扩展HttpServlet {
private static final long serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
this.doPost(请求,响应);
}
/**
* 处理文件下载的邮政
* @抛出IOException
*/
受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
//1.设置参数编码
请求。setcharacterencoding(“UTF-8”);
//设置响应数据字符集
回应。setcharacterencoding(“UTF-8”);
//2.获得请求文件名
字符串文件名=请求。getparameter(' fileName ');
//3.获取该文件所在路径
字符串文件路径=' we b-INF/upload files/' fileName;
文件路径=this。getservletcontext().获取真实路径(文件路径);
//4.在指定路径下创建指定名称的文件
文件删除文件=新文件(文件路径);
布尔标志=假;
字符串msg=
//5.判断该文件是否已存在
if (deleteFile.exists()) {
flag=删除文件。delete();
如果(标志){
msg='删除成功!';
}否则{
msg='删除失败!';
}
}否则{
msg='该文件不存在!';
}
//6.返回客户端操作信息
response.getWriter().打印(味精);
}
}
web.xml代码
?可扩展标记语言版本='1.0 '编码='UTF八号'?
我们B- app xmlns:xsi=' http://www。w3。org/2001/XML架构实例' xmlns=' http://Java。星期日com/XML/ns/javaee ' xsi:schema location=' http://Java。星期日com/XML/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' ID=' web app _ ID '版本='2.5 '
显示名称演示_上传和下载/显示名称
上下文参数
param-name webapproot键/param-name
param-valueuploadAndDownload/param-value
/content-参数
!-处理文件的Servlet -
!-文件上传开始-
小型应用程序
servlet名称上传/servlet-name
!-配置处理文件上传的Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)类-
servlet类控制器。文件处理程序。文件上传/servlet-class
/servlet
小型应用程序映射
servlet名称上传/servlet-name
!-设置文件上传请求路径-
URL-模式/上传文件。do/URL模式
/servlet-映射
!表示"受到某种对待的人":股息|牧师文件上传-
!-文件预览开始-
小型应用程序
servlet名称视图/servlet-name
!-配置处理文件预览的Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)类-
servlet-classcontroller.fileHandler.FileView/servlet-class
/servlet
小型应用程序映射
servlet名称视图/servlet-name
!-设置文件预览请求路径-
URL-模式/视图文件。do/URL模式
/servlet-映射
!表示"受到某种对待的人":股息|牧师文件预览-
!-文件下载开始-
小型应用程序
servlet名称下载/servlet-name
!-配置处理文件下载的Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)类-
servlet类控制器。文件处理程序。文件下载/servlet类
/servlet
小型应用程序映射
servlet名称下载/servlet-name
!-设置文件下载请求路径-
URL特征码/下载文件。do/URL模式
/servlet-映射
!表示"受到某种对待的人":股息|牧师文件下载-
!-文件删除开始-
小型应用程序
servlet名称删除/servlet-name
!-配置处理文件删除的Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)类-
servlet类控制器。文件处理程序。文件删除/servlet类
/servlet
小型应用程序映射
servlet名称删除/servlet-name
!-设置文件删除请求路径-
全球资源定位器(Uniform Resource Locator)模式/删除文件/url模式
/servlet-映射
!表示"受到某种对待的人":股息|牧师文件删除-
欢迎文件列表
welcome-fileindex.html/welcome-file
welcome-fileindex.htm/welcome-file
welcome-fileindex.jsp/welcome-file
welcome-filedefault.html/welcome-file
welcome-filedefault.htm/welcome-file
welcome-filedefault.jsp/welcome-file
/welcome-file-list
/网络应用
2.3 代码优化
处理文件查看(FileView.java),设置响应文件类型,可以用下面这句话替换
回应。设置内容类型(getServletContext().”getMimeType(文件名)”;charset=UTF-8 ');
一、准备工作:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。