`
从此醉
  • 浏览: 1049356 次
  • 性别: Icon_minigender_1
  • 来自: US
社区版块
存档分类
最新评论

java实现web文件无刷新上传(一)

 
阅读更多
最近在做如何实现文件上传的相关工作,查阅了很多资料,发现网上写的都不是很直观,且调试复杂,经实验成功。

把form的target设为页面里一个看不见的iframe,这样上传时候就不会刷新页面了,比如 :
<form action="uploadFile" method="post" enctype="multipart/form-data" target="upload">
<input id="uploadfile" name="uploadfile" type="file"/><button>上传至FTP</button>
</form>
<iframe name="upload" style="display:none"></iframe>
后台方法代码如下:

public void uploadFile(HttpServletRequest request) throws IOException {
                //创建文件处理工厂,用于生成FileItem对象
DiskFileItemFactory difactory = new DiskFileItemFactory();
//设置缓存大小,如果上传问价超过缓存大小,将使用临时目录作为缓存
difactory.setSizeThreshold(1024*1024);
//设置处理工厂缓存的临时目录,此目录下的文件需要手动删除
// String realdir = request.getContextPath();//当前应用程序根路径
// System.out.println("realdir------------------"+realdir);
String dir = "D:/fileupload";
File filedir = new File(dir+"filetemp");
if(!filedir.exists()){
filedir.mkdir();
}
difactory.setRepository(filedir);
//设置文件实际保存的目录
String userdir = dir + "files";
File fudir = new File(userdir);
if(!fudir.exists()){
fudir.mkdir();
}

//创建request的解析器,它会将数据封装到FileItem对象中
ServletFileUpload sfu = new ServletFileUpload(difactory);
//防止上传的文件名字出现乱码
upload.setHeaderEncoding("UTF-8");
//解析保存在request中的数据并返回list集合
List list = null;
try{
list = sfu.parseRequest(request);
}catch(FileUploadException e){
e.printStackTrace();
}
//遍历list集合,去除每一个输入项的FileItem对象,并分别获取数据
for(Iterator it = list.iterator();it.hasNext();){
FileItem fi = (FileItem)it.next();
if(fi.isFormField()){
System.out.println("FileFieldName"+fi.getFieldName());
System.out.println("FileString--->"+fi.getString());
}else{
//由于客户端项服务器发送的文件时客户端的全路径,我们只需文件
String filename = fi.getName();
// int index = filename.lastIndexOf("\\");
// if(index != -1){
// filename = filename.substring(index+1);
//向服务器写出文件
InputStream in = fi.getInputStream();
FileOutputStream fos = new FileOutputStream(fudir+"/"+filename);
byte[] buf = new byte[1024];
int len = -1;
while((len = in.read(buf))!=-1){
fos.write(buf,0,len);
}
//关闭流
if(in!=null){
try{
in.close();
}finally{
if(fos!=null){
fos.close();
}
}
}
// }
}
}
}
分享到:
评论

相关推荐

    JAVA WEB在线上传无刷新进度条显示

    JAVA WEB在线上传无刷新进度条显示

    ajax实现文件上传

    但是用iFrame来实现无刷新上传文件确实一个很好的选择。ps:Ajax技术基本上可以说是由google公司带起来的,但少Gmail中上传文件用的还是 IFrame,所以说使用IFrame来上传文件是最好的选择。 我在这里这里用的技术...

    SWFUpload 大文件上传 java

    * 类似AJAX的无刷新上传; * 可以显示上传进度; * 良好的浏览器兼容性; * 兼容其他JavaScript库 (例如:jQuery, Prototype等); * 支持Flash 8和Flash 9; SWFUpload不同于其他基于Flash构建的上传工具,它有着...

    JAVA上百实例源码以及开源项目

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    java源码包---java 源码 大量 实例

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    WebUploader无刷新Ajax上传文件实例(Java Struts2版)

    通过这几天对WebUploader控件的研究,终于有了一些收获,特意开发了一个完整的上传功能,包括前后端对上传文件的过滤校验,以及上传前的新增及移除文件。另外上传类中还有一个通用的多文件批量上传方法。该附件是...

    java源码包4

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    java源码包3

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    JAVA上百实例源码以及开源项目源代码

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    java源码包2

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    纯JSP带进度条无刷新的单文件上传

    1、纯JSP代码编写,能够实现文件上传处理 2、带进度条,上传时页面无需刷新 3、支持中文文件名 4、代码比Ajax方式简单很多 5、在Tomcat7.0上调试通过(很容易修改为支持Tomcat6.0以下版本) 6、Eclipse项目源文件 7...

    JSP+Mootools实现的Ajax无刷新上传文件

    内容索引:JSP源码,上传下载,Mootools,JSP上传文件 JSP+Mootools实现的Ajax无刷新上传文件,附有完整的JAVA源文件,方便您的二次开发和修改,带上传进度条,适时显示上传进度,演示截图如上示,对于学习来说,这个...

    java jdk实列宝典 光盘源代码

    内容: 1 转换基本数据类型;运算符;计算阶乘; 2 复数类;java的参数传递;自定义形状类;... jsp无刷新聊天室; 设置和读取cookie; 上传文件; 用servlet生成图形验证码; 用servlet实现分页查看数据库;

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    [上传下载]仿163网盘无刷新文件上传forJsp_fileupload_jsp.zip

    这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...

    [上传下载]仿163网盘无刷新文件上传 for Jsp_fileupload_jsp.rar

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    [上传下载]仿163网盘无刷新文件上传 for PHP_fileupload_php.rar

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

Global site tag (gtag.js) - Google Analytics