基于HTML5+js+Java实现单文件文件上传到服务器功能

HTML5代码:

方法一:直接表单提交

1

2

3

4

5

6

<form name="upform" action="url" method="POST"

          <input type ="file" name="myfile1" id="myfile1"/><br/> 

          <input type ="file" name="myfile2" id="myfile2"/><br/>

              备注:<input type="text" name="mydata" id="mydata"/><br/>

          <input type="button" value="确定" onclick="upload()"/><br/> 

</form>

方法二 js 提交

js代码:

FormData可以把它理解成一个虚拟的表单对象,它只有一个方法append,我们可以通过append向FormData里面添加各种需要提交的数据。

 url:/adata/adata/payment/PaymentAction/upload.menu----指的是你Java接受信息的action路径

        _pathName=/adata//payment.jsp-----------指的是你HTML5页面的虚拟路径。

         alert(result);-------指的是从Java后台返回的信息。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

function upload() {

 mydata = document.getElementById("mydata").files[0];

 formData = new FormData();

 formData.append("mydata", mydata);

  $.ajax({

       contentType:"multipart/form-data",

       url:"/adata/adata/payment/PaymentAction/upload.menu?_pathName=/adata//payment.jsp",

       type:"POST",

       data:formData,

       dataType:"text",

       processData: false, // 告诉jQuery不要去处理发送的数据

       contentType: false, // 告诉jQuery不要去设置Content-Type请求头

       success: function(result){

       alert(result);

 }

 });

}

Java代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

String savePath = "d:/";//存储路径

      String retMsg = "";//定义将返回给客户端的信息

      try {

        if (ServletFileUpload.isMultipartContent(request)) {

          List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

          for (FileItem item : items) {

            if (!item.isFormField()) {// 过滤掉表单中非文件域

              String fileType = item.getName().substring(item.getName().lastIndexOf(".") + 1).toLowerCase();//文件类型

              String fileName = new Date().getTime() + "." + fileType; //保存的文件名

              String filePath = savePath + "\\" + fileName; //保存的文件路径

              BufferedInputStream in = new BufferedInputStream(item.getInputStream());// 获得文件输入流

              BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(filePath)));// 获得文件输出流

              org.apache.commons.fileupload.util.Streams.copy(in, out, true);// 开始把文件写到指定的上传文件夹

              retMsg += "上传文件成功!";

              in.close();

              out.close();

            

          }

        }

        response.setContentType("text/html;charset=utf8");

        PrintWriter pw = response.getWriter();

        pw.print(retMsg);

        pw.flush();

        pw.close();

        //根据自己需要返回页面一个 retMsg

         // return retMsg 证明上传成功

      } catch (Exception e) {

        e.printStackTrace();

      }

猜你喜欢

转载自blog.csdn.net/u011555620/article/details/84778171
今日推荐