JSP servlet实现文件上传下载和删除
本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下
由于存储空间,对一般用户而言,就是用来操作存储文件的,所以这两天,特意看了一下windows下用servlet实现文件上传、下载和删除,下面是详细代码说明
上传:
用的是commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar组件,可以去apache官网上去下载,然后放到WebRoot/WEB-INF/lib目录下
upload.html
Fileupload File:
web.xml里加上下面几行:
Upload am.demo.Upload Upload /fileupload
src目录下新建文件Upload.java:
packageam.demo;
importjava.io.File;
importjava.io.IOException;
importjava.util.Iterator;
importjava.util.List;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.commons.fileupload.FileItem;
importorg.apache.commons.fileupload.disk.DiskFileItemFactory;
importorg.apache.commons.fileupload.servlet.ServletFileUpload;
@SuppressWarnings("serial")
publicclassUploadextendsHttpServlet{
privateStringuploadPath="d://temp";//上传文件的目录
@SuppressWarnings("unchecked")
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsIOException,ServletException{
try{
//Createafactoryfordisk-basedfileitems
DiskFileItemFactoryfactory=newDiskFileItemFactory();
//Createanewfileuploadhandler
ServletFileUploadupload=newServletFileUpload(factory);
Listitems=upload.parseRequest(request);//得到所有的文件
Iteratori=items.iterator();
while(i.hasNext()){
FileItemfi=(FileItem)i.next();
StringfileName=fi.getName();
if(fileName!=null){
FilefullFile=newFile(fi.getName());
FilesavedFile=newFile(uploadPath,fullFile.getName());
fi.write(savedFile);
}
}
response.setContentType("text/html;charset=GBK");
response.getWriter().print(
"");
}catch(Exceptione){
//可以跳转出错页面
e.printStackTrace();
}
}
publicvoidinit()throwsServletException{
FileuploadFile=newFile(uploadPath);
if(!uploadFile.exists()){
uploadFile.mkdirs();
}
}
}
再看下载Downlaod.java:
packageam.demo;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.OutputStream;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
publicclassDownloadextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsIOException,ServletException{
StringaFileName=newString(request.getParameter("name").getBytes(
"iso8859-1"),"gbk");
FilefileLoad=newFile("d:/temp",aFileName);
FileInputStreamin=null;//输入流
OutputStreamout=response.getOutputStream();
byteb[]=newbyte[1024];
try{
response.setContentType("application/x-msdownload;");
response.setHeader("Content-disposition","attachment;filename="
+newString(aFileName.getBytes("GBK"),"ISO-8859-1"));
//downloadthefile.
in=newFileInputStream(fileLoad);
intn=0;
while((n=in.read(b))!=-1){
out.write(b,0,n);
}
}catch(Throwablee){
e.printStackTrace();
}finally{
try{
in.close();
out.close();
}catch(Throwablee){
e.printStackTrace();
}
}
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsIOException,ServletException{
doGet(request,response);
}
}
删除Delete.java:
packageam.demo;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
publicclassDeleteextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsFileNotFoundException,IOException{
StringaFileName=newString(request.getParameter("name").getBytes(
"iso8859-1"),"gbk");
Filefile=newFile("d:/temp",aFileName);
response.setContentType("text/html;charset=GBK");
if(!file.isDirectory()){
file.delete();
response.getWriter().print(
"");
}else{
}
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsIOException,ServletException{
doGet(request,response);
}
}
因为ubuntuserver是黑屏,本人用的是ubuntuserver10.04,不方便用浏览器来查看文件,因为没有图形界面,也不方便调试,所以可以先在windows上测试通过,然后把相应文件拷到ubuntuserver中的tomcat相应目录下,可以通过samba来传文件,但遇到一个问题,就是中文乱码的问题,因为在开始安装时,选的是英文,后面用网上的一些办法,还是没有解决中文乱码的问题,有知道的大侠,还烦请转告。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。