jsp无刷新文件上传的实现
本想利用AJAX实现无刷新文件上传,后来发现不易实现,在网上找了很久,终于找到一个“伪AJAX”的实现方式,现在发出来我实际的代码,一飨读者。
首先我们需要一个上传的HTML或者JSP文件,如下:
支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传
其中FORM的TARGET属性[b]非常重要[/b],把FORM的ACTION提交到一个隐藏的IFRAME中去执行,然后返回的时候在MSG的地方填入操作即可,SERVLET的类似代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
PrintWriter out = response.getWriter();
response.setCharacterEncoding("utf-8");
response.setHeader("Charset","utf-8");
response.setHeader("Cache-Control", "no-cache");
String filepath="",msg="",ext="";
SmartUpload su = new SmartUpload();
boolean succ=true;
。。。。。。
try{
su.initialize(getServletConfig(),request,response);
su.setMaxFileSize(102400000);
su.setTotalMaxFileSize(102400000);
su.setAllowedFilesList(mediaExt+","+flashExt+","+imgExt);
su.setDeniedFilesList("exe,bat,,");
su.upload();
for (int i=0;i
{
com.jspsmart.upload.File file = su.getFiles().getFile(i);
if (file.isMissing()) continue;
String fileName=UploadFileUtils.returnRandomFileName(file.getFileExt());
ext=file.getFileExt().toLowerCase();
。。。。。。。。。。。
msg="上传成功!";
}
}catch(SmartUploadException sue){
succ=false;
msg="上传失败:请检查文件扩展名或文件大小!";
}catch(Exception ex){
succ=false;
msg="上传失败:请检查文件扩展名或文件大小!";
ex.printStackTrace();
}
msg=Escape.escape(msg);
if(succ)
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');parent.backCallIframe('"+Escape.escape(ext)+"','"+Escape.escape(filepath)+"')");
else
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');");
out.close();
}
本文作者:相关阅读:
ASP教程:ASP是不区分大小写
VB2005中开发新一代控制台应用程序(1)
Windows7按空格键快速调用启动管理器
用PHP制作静态网站的模板框架
很好用的PHP数据库类
apache 403错误 Forbidden解决方法
学习Jquery之旅
微软Hyper-V强调安装使用简便
学习ASP基础教程
JavaScript中this关键字使用方法详解
用PHP实现ODBC数据分页显示一例
如何撤销Win7开机登陆到桌面时候有“滴”的一声报警音
asp.net与excel互操作实现代码
Ubuntu 9.04将会支持Ext4 filesystem