下面介绍的是非AJAX的实现方法,首先我们需要一个上传的HTML或者JSP文件,如下:
<FORM METHOD="POST" ACTION="../servlet/FileUploadServlet" enctype="multipart/form-data" target="hidden_frame" onSubmit="showmsg();" style="margin:0;padding:0">
<input type="file" name="sfile" style="width:450">
<input type="hidden" name="act" value="upload">
<INPUT type="submit" value="上传文件"><span id="msg"></span>
<br>
<font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传</font>
<iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
</form>
其中FORM的TARGET属性
非常重要,把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<su.getFiles().getCount();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="<a href=\"#\">上传成功!</a>";
}
}catch(SmartUploadException sue){
succ=false;
msg="<font color=red>上传失败:请检查文件扩展名或文件大小!</font>";
}catch(Exception ex){
succ=false;
msg="<font color=red>上传失败:请检查文件扩展名或文件大小!</font>";
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();
}
分享到:
相关推荐
JSP无刷新文件上传的实现JSP无刷新文件上传的实现JSP无刷新文件上传的实现JSP无刷新文件上传的实现
JSP批量上传,实现多文件无刷新上传(带有进度条)。 程序加了些须的验证,目前只能上传图片。 压缩文件为Eclipse项目文件,直接导入即可使用 预览图片地址: ...注:所有文件保存到项目文件夹下的uplaod文件夹下,...
出于安全考虑js是不能操作文件的,而ajax与后台通信都是通过传递字符串所以在jsp中使用iframe实现无刷新提交文件
java项目之仿163网盘无刷新文件上传jspjava项目之仿163网盘无刷新文件上传jspjava项目之仿163网盘无刷新文件上传jspjava项目之仿163网盘无刷新文件上传jspjava项目之仿163网盘无刷新文件上传jspjava项目之仿163网盘...
AJAX无法实现文件上传功能,原因是JavaScript安全限制不能对文件执行操作,但是通过IFRAME框架可以模拟实现无刷新效果。虽说是无刷新的,但状态栏会刷新一下。代码是一个JSP的示例。
(4)巧妙实现页面无刷新处理; (5)上传进度提示; (6)采用专用线程负责上传; (7)支持多文件上传; (8)具体效果请看http://blog.csdn.net/hbccgg/archive/2011/04/29/6371080.aspx (9)压缩文件为Eclipse...
本文实现的文件上传也是无页面刷新的,可以说是一种"类似AJAX"方法。 开始之前先说两句无关的,其实在ajax出现之前,web应用也可以是无刷新的,那时大多通过IFrame来做到这一点。当然Ajax出现之后,人们一窝蜂地...
上传下载]仿163网盘无刷新文件上传 for Jsp_fileupload_jsp
这是一个纯jsp实现的文件上传功能. 无页面刷新,表单数据可以依次连续填写,最后上传文件. 文件上传后将文件名和上传路径返回,供业务保存DB使用.
1、纯JSP代码编写,能够实现文件上传处理 2、带进度条,上传时页面无需刷新 3、支持中文文件名 4、代码比Ajax方式简单很多 5、在Tomcat7.0上调试通过(很容易修改为支持Tomcat6.0以下版本) 6、Eclipse项目源文件 7...
用jspSmartUploas组件上次文件时,会跳到新页面,这里实现了不刷新页面上次文件,
标题:JSP文件上传工具 - 仿163网盘无刷新文件上传描述:在当今数字化时代,网络存储和文件分享已成为日常生活和工作中不可或缺的一部分。为了满足现代网络应用的需求,本JSP文件上传工具旨在提供一个高效、便捷的...
ajax iframe jsp 无刷新上传文件+JavaScript字符串函数大全+如何自定义Struts2表单验证后的错误信息显示格式样式
jsp+ajax实现无刷新上传文件的方法.docx
AJAX+JSP仿163网盘无刷新文件上传实例
NULL 博文链接:https://liuzhilei92.iteye.com/blog/2126770
[上传下载]网盘无刷新文件上传 for Jsp_fileupload_jsp 这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有创新和亮点的毕业答辩基本达不到老师的要求。 现在学长为你们准备计算机毕设JSP项目,需要的自取哦。...
FileUpload_jsp无刷新文件上传源码.zip
不错的适合练手、课程设计、毕业设计的JSP项目源码:仿163网盘无刷新文件上传.rar不错的适合练手、课程设计、毕业设计的JSP项目源码:仿163网盘无刷新文件上传.rar不错的适合练手、课程设计、毕业设计的JSP项目源码...