java mvc上传文件进度_springMVC+ajax实现文件上传且带进度条实例

前端代码:

指定文件名:

上传文件: p>

function doupload() {

var formdata = new formdata($( "#uploadform" )[0]);

$.ajax({

url: 'http://localhost:8080/xiaochangwei/file/upload' ,

type: 'post',

data: formdata,

async: false,

cache: false,

contenttype: false,

processdata: false,

success: function (returndata) {

alert(returndata);

},

error: function (returndata) {

alert(returndata);

}

});

}

后端:

@requestmapping(value = "/upload", method = requestmethod.post)

public string upload(httpservletrequest request, @requestparam("file") multipartfile file, modelmap model) {

system.out.println("开始");

string path = request.getsession().getservletcontext().getrealpath("upload");

string filename = file.getoriginalfilename();

// string filename = new date().gettime()+".jpg";

system.out.println(path);

file targetfile = new file(path, filename);

if (!targetfile.exists()) {

targetfile.mkdirs();

}

// 保存

try {

file.transferto(targetfile);

} catch (exception e) {

e.printstacktrace();

}

model.addattribute("fileurl", request.getcontextpath() + "/upload/" + filename);

return "result";

}

如果前端有很多实体类数据同文件一同提交

可以修改后端方法为:

upload(httpservletrequest request, @requestparam("file") multipartfile file, modelmap model,user user)

利用下面的代码更可实现带有进度条的文件上传

function upladfile() {

var fileobj = document.getelementbyid("file").files[0]; // js 获取文件对象

var filecontroller = "http://localhost:8080/xiaochangwei/file/upload"; // 接收上传文件的后台地址

// formdata 对象

var form = new formdata($( "#uploadform" )[0]);

// xmlhttprequest 对象

var xhr = new xmlhttprequest();

xhr.open("post", filecontroller, true);

xhr.onload = function () {

// alert("上传完成!");

};

xhr.upload.addeventlistener("progress", progressfunction, false);

xhr.send(form);

}

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) + "%";

if(evt.loaded==evt.total){

alert("上传完成100%");

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值