博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件上传与下载
阅读量:4556 次
发布时间:2019-06-08

本文共 5636 字,大约阅读时间需要 18 分钟。

文件上传与下载

a.使用 ajaxfileupload.js 完成文件上传

 

  js 方法

1 function ajaxFileUpload() 2 { 3      $("#loading_img").ajaxStart(function(){ 4          $(this).show();  //开始上传文件时显示一个图片 5      }).ajaxComplete(function(){ 6          $(this).hide();  //文件上传完成将图片隐藏起来 7      }); 8      9       $.ajaxFileUpload10       (11           {12               url:'FileUpLoadServlet',//用于文件上传的服务器端请求地址13               secureuri:false,//一般设置为false14               fileElementId:'file_ajax',//文件上传空间的id属性  15               dataType: 'json',//返回值类型 一般设置为json16               success: function (data, status)  //服务器成功响应处理函数17               {18                   //从服务器返回的json中取出message中的数据,其中message为在struts2中action中定义的成员变量19                   alert(data.message);20                   21                   if(typeof(data.error) != 'undefined')22                   {23                       if(data.error != '')24                       {25                           alert(data.error);26                       }else27                       {28                           alert(data.message);29                       }30                   }31               },32               error: function (data, status, e)//服务器响应失败处理函数33               {34                   alert(e);35               }36           }37       )38       39       return false;40 41 }

 

  HTML代码

1 2 3 

 

  java 部分的代码   (来源于网络,仅作参考)

 

 

1 package ajax.fileupload;  2   3 import java.io.File;  4 import java.io.IOException;  5 import java.io.PrintWriter;  6 import java.util.Iterator;  7 import java.util.List;  8   9 import javax.servlet.ServletConfig; 10 import javax.servlet.ServletContext; 11 import javax.servlet.ServletException; 12 import javax.servlet.http.HttpServlet; 13 import javax.servlet.http.HttpServletRequest; 14 import javax.servlet.http.HttpServletResponse; 15  16 import org.apache.commons.fileupload.FileItem; 17 import org.apache.commons.fileupload.FileUploadException; 18 import org.apache.commons.fileupload.disk.DiskFileItemFactory; 19 import org.apache.commons.fileupload.servlet.ServletFileUpload; 20  21 public class FileUpLoadServlet extends HttpServlet { 22      23      private static final long serialVersionUID = -7744625344830285257L; 24      private ServletContext sc; 25      private String savePath; 26  27      28     public FileUpLoadServlet() { 29         super(); 30     } 31  32     public void doGet(HttpServletRequest request, HttpServletResponse response) 33             throws ServletException, IOException { 34  35         doPost(request, response); 36     } 37  38     public void init(ServletConfig config) throws ServletException  39     { 40           // 在web.xml中设置的一个初始化参数 41           savePath = config.getInitParameter("savePath"); 42           sc = config.getServletContext(); 43     } 44      45     public void doPost(HttpServletRequest request, HttpServletResponse response) 46             throws ServletException, IOException { 47  48           request.setCharacterEncoding("UTF-8"); 49           response.setCharacterEncoding("UTF-8"); 50           DiskFileItemFactory factory = new DiskFileItemFactory(); 51           ServletFileUpload upload = new ServletFileUpload(factory); 52           try 53           { 54                List items = upload.parseRequest(request); 55                Iterator itr = items.iterator(); 56             57            while (itr.hasNext())  58            { 59                  FileItem item = (FileItem) itr.next(); 60                  if (item.isFormField())  61                  { 62                       System.out.println("表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8")); 63                  }  64                  else  65                  { 66                      if (item.getName() != null && !item.getName().equals("")) 67                      { 68                           System.out.println("上传文件的大小:" + item.getSize()); 69                           System.out.println("上传文件的类型:" + item.getContentType()); 70                           71                           // item.getName()返回上传文件在客户端的完整路径名称 72                           System.out.println("上传文件的名称:" + item.getName()); 73  74                           File tempFile = new File(item.getName()); 75  76                           //上传文件的保存路径 77                           File file = new File(sc.getRealPath("/") + savePath, tempFile.getName()); 78                           item.write(file); 79                            80                           PrintWriter out = response.getWriter(); 81                           out.println("{'message':'上传文件成功!'}"); 82                     } 83                     else 84                     { 85                           request.setAttribute("message", "没有选择上传文件!"); 86                     } 87                } 88            } 89           } 90           catch(FileUploadException e) 91           { 92               e.printStackTrace(); 93           } 94           catch (Exception e)  95           { 96               e.printStackTrace(); 97               request.setAttribute("message", "上传文件失败!"); 98           } 99           100           //request.getRequestDispatcher("/uploadResult.jsp").forward(request, response);101     }102     103 }

 

 需要引入的jar

 

    FileUpload下载地址:

  

  下载:commons-fileupload-1.2.2-bin.zip    得到:commons-fileupload-1.2.2.jar

  

  下载:commons-io-1.4-bin.zip       得到:commons-io-1.4.jar

   web.xml文件中需要配置

1  
2 .....3 4
5
6
savePath
7
uploads
8
9

  在tomcat的webapps目录下建 文件夹  uploads

  ......\webapps\UploadFile\uploads

  有进度条的文件上传

 

转载于:https://www.cnblogs.com/yiliweichinasoft/p/3387199.html

你可能感兴趣的文章
人之初,性本恶
查看>>
springboot 端口号
查看>>
使用AChartEngine画动态曲线图
查看>>
安卓项目五子棋代码详解(四)
查看>>
urllib 学习一
查看>>
bzoj4196 [Noi2015]软件包管理器——树链剖分
查看>>
kafka源码阅读环境搭建
查看>>
UI设计
查看>>
androidtab
查看>>
Windows Phone 自定义弹出框和 Toast 通知
查看>>
如何生成静态页面的五种方案
查看>>
php 事件驱动 消息机制 共享内存
查看>>
剑指offer 二叉树的bfs
查看>>
LeetCode Maximum Subarray
查看>>
让我们再聊聊浏览器资源加载优化
查看>>
underscore demo
查看>>
CSS hack
查看>>
C# Enum Name String Description之间的相互转换
查看>>
PHP wamp server问题
查看>>
Spring Data Redis学习
查看>>