吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2570|回复: 7
收起左侧

[其他转载] ajax 上传文件

  [复制链接]
阿伦找茬 发表于 2015-7-23 14:42

1
2
3
4
5
6
<input id="file" name="myfile" onclick="clearProgressInfo()" type="file">
<span id="progressInfo" style="display:none;">
<progress id="progressBar" value="0" max="100"></progress>
<span id="percentage"></span>
</span><br>
<input onclick="UpladFile()" value="上传" type="button">


js代码?
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
30
31
32
33
34
35
36
37
38
function UpladFile() {
    var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
    var FileController = "/file/saveFile.do"; // 接收上传文件的后台地址

    // FormData 对象
    var form = new FormData();
    form.append("author", "hooyes"); // 可以增加表单数据
    form.append("file", fileObj); // 文件对象

    // XMLHttpRequest 对象
    var xhr = new XMLHttpRequest();
    xhr.open("post", FileController, true);
    xhr.onload = function() {
        // alert("上传完成!");
    };
     
    document.getElementById('progressInfo').style.display = "";
    xhr.upload.addEventListener("progress", progressFunction, false);

    xhr.send(form);
}

function clearProgressInfo()
{
    document.getElementById('progressInfo').style.display='none';
    document.getElementById("progressBar").value = 0;
    document.getElementById("percentage").innerHTML = "";
}

function progressFunction(evt) {
    var progressBar = document.getElementById("progressBar");
    var percentageDiv = document.getElementById("percentage");
    if (evt.lengthComputable) {
        progressBar.max = evt.total;
        progressBar.value = evt.loaded;
        percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
    }
}




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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.util.Streams;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import com.okcoin.util.Logs;

@Controller
@RequestMapping(value="/file/*.do")
public class FileController extends MultiActionController{
     
    public String saveFile(HttpServletRequest request,HttpServletResponse response) throws IOException
    {
        MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
        MultipartHttpServletRequest multipartRequest = null;
        try {
            multipartRequest = resolver.resolveMultipart(request);
        } catch (Exception e) {
            Logs.geterrorLogger().error("AdminAccountController submitVerifyFile 非常的请求");
        }
         
        //接收文件
        MultipartFile documentFile = multipartRequest.getFile("file");
        //获取文件名
        String documentFileName=documentFile.getOriginalFilename();
        System.out.println("FileName:" + documentFileName);
         
        BufferedInputStream in = new BufferedInputStream(documentFile.getInputStream());
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("D:\\Users\\" + documentFileName));
        Streams.copy(in, out, true);
        System.out.println("copy finished.");
        return "";
    }
}


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

堕落ぁ狼 发表于 2015-7-23 14:50
然而楼主想表达什么呢?


Tiana丶Tiana 发表于 2015-7-23 15:02
Enrique丶 发表于 2015-7-23 15:06
关于ajax的提示,不是提示框,是直接显示在页面上的文字,楼主有木有……
 楼主| 阿伦找茬 发表于 2015-7-24 13:06
Enrique丶 发表于 2015-7-23 15:06
关于ajax的提示,不是提示框,是直接显示在页面上的文字,楼主有木有……

你指的是不要用alert ,改innerHTML吗,我是新手 打错勿喷
Enrique丶 发表于 2015-7-24 14:18
阿伦找茬 发表于 2015-7-24 13:06
你指的是不要用alert ,改innerHTML吗,我是新手 打错勿喷

恩,我是用innerHTML做的,想问问有木有其他方法……
 楼主| 阿伦找茬 发表于 2015-7-24 14:55
Enrique丶 发表于 2015-7-24 14:18
恩,我是用innerHTML做的,想问问有木有其他方法……

doucument.write() 或者是doucument.writeln()  还有就是jquery的html()方法 这个其实就是innerHTML
盗亦锋 发表于 2015-7-24 15:13
火钳刘明……楼煮上传成功了咩
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-22 23:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表