2、安装,由于下载下来的例子是php版本的,所以我只留下了主要的几个文件。如图:
4、使用
前台页面:
pageEncoding="UTF-8"%>
htmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd">
Inserttitlehere
$(document).ready(function(){
$("#uploadify").uploadify({
'swf':'plugin/uploadify/uploadify.swf',
'uploader':'UploadServlet',
'folder':'/upload',
'queueID':'fileQueue',
'cancelImg':'plugin/uploadify/uploadify-cancel.png',
'buttonText':'上传文件',
'auto':false,//设置true自动上传设置false还需要手动点击按钮
'multi':true,
'wmode':'transparent',
'simUploadLimit':999,
'fileTypeExts':'*.*',
'fileTypeDesc':'AllFiles'
});
});
上传|
取消上传
后台:
这里需要用到commons-fileupload组件,自行下载(提供的源码中有哦~)。
importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.Date;
importjava.util.Iterator;
importjava.util.List;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
mons.fileupload.FileItem;
mons.fileupload.FileUploadException;
mons.fileupload.disk.DiskFileItemFactory;
mons.fileupload.servlet.ServletFileUpload;
mons.fileupload.util.Streams;
/**
*ServletimplementationclassUploadServlet
*/
@WebServlet("/UploadServlet")
publicclassUploadServletextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
/**
*@seeHttpServlet#HttpServlet()
*/
publicUploadServlet(){
super();
//TODOAuto-generatedconstructorstub
}
/**
*@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
doPost(request,response);
}
/**
*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
//文件存放的目录
FiletempDirPath=newFile(request.getSession().getServletContext().getRealPath("/")+"\\upload\\");
if(!tempDirPath.exists()){
tempDirPath.mkdirs();
}
//创建磁盘文件工厂
DiskFileItemFactoryfac=newDiskFileItemFactory();
//创建servlet文件上传组件
ServletFileUploadupload=newServletFileUpload(fac);
//文件列表
ListfileList=null;
//解析request从而得到前台传过来的文件
try{
fileList=upload.parseRequest(request);
}catch(FileUploadExceptionex){
ex.printStackTrace();
return;
}
//保存后的文件名
StringimageName=null;
//便利从前台得到的文件列表
Iteratorit=fileList.iterator();
while(it.hasNext()){
FileItemitem=it.next();
//如果不是普通表单域,当做文件域来处理
if(!item.isFormField()){
imageName=newDate().getTime()+Math.random()*10000+item.getName();
BufferedInputStreamin=newBufferedInputStream(item.getInputStream());
BufferedOutputStreamout=newBufferedOutputStream(
newFileOutputStream(newFile(tempDirPath+"\\"+imageName)));
Streams.copy(in,out,true);
}
}
//
PrintWriterout=null;
try{
out=encodehead(request,response);
}catch(IOExceptione){
e.printStackTrace();
}
//这个地方不能少,否则前台得不到上传的结果
out.write("1");
out.close();
}
/**
*Ajax辅助方法获取PrintWriter
*@return
*@throwsIOException
*@throwsIOException
*request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
*/
privatePrintWriterencodehead(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
returnresponse.getWriter();
}
}
5、最终效果图 有点类似百度上传文件的页面效果 没有百度做的好看哈~ 请勿喷