最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js实现文件上传功能 后台使用MultipartFile

来源:动视网 责编:小OO 时间:2020-11-27 22:08:00
文档

js实现文件上传功能 后台使用MultipartFile

本文为大家分享了js实现文件上传功能的具体代码,供大家参考,具体内容如下:<。");}else{ alert("上传失败。");}} //上传失败 function uploadFailed(evt) { alert("上传失败
推荐度:
导读本文为大家分享了js实现文件上传功能的具体代码,供大家参考,具体内容如下:<。");}else{ alert("上传失败。");}} //上传失败 function uploadFailed(evt) { alert("上传失败


本文为大家分享了js实现文件上传功能的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>XMLHttpRequest上传文件</title>
 <script type="text/javascript">
 //图片上传
 var xhr;
 //上传文件方法
 function UpladFile() {
 var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
 var url = "http://localhost:8080" + "/api/attachment/upload"; // 接收上传文件的后台地址
 
 var form = new FormData(); // FormData 对象
 form.append("file", fileObj); // 文件对象
 
 xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
 xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
 xhr.onload = uploadComplete; //请求完成
 xhr.onerror = uploadFailed; //请求失败
 
 xhr.upload.onprogress = progressFunction;//【上传进度调用方法实现】
 xhr.upload.onloadstart = function(){//上传开始执行方法
 ot = new Date().getTime(); //设置上传开始时间
 oloaded = 0;//设置上传开始时,以上传的文件大小为0
 };
 
 xhr.send(form); //开始上传,发送form数据
 }
 
 //上传成功响应
 function uploadComplete(evt) {
 //服务断接收完文件返回的结果
 
 var data = JSON.parse(evt.target.responseText);
 if(data.success) {
 alert("上传成功!");
 }else{
 alert("上传失败!");
 }
 
 }
 //上传失败
 function uploadFailed(evt) {
 alert("上传失败!");
 }
 //取消上传
 function cancleUploadFile(){
 xhr.abort();
 }
 
 
 //上传进度实现方法,上传过程中会频繁调用该方法
 function progressFunction(evt) {
 var progressBar = document.getElementById("progressBar");
 var percentageDiv = document.getElementById("percentage");
 // event.total是需要传输的总字节,event.loaded是已经传输的字节。如果event.lengthComputable不为真,则event.total等于0
 if (evt.lengthComputable) {//
 progressBar.max = evt.total;
 progressBar.value = evt.loaded;
 percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
 }
 var time = document.getElementById("time");
 var nt = new Date().getTime();//获取当前时间
 var pertime = (nt-ot)/1000; //计算出上次调用该方法时到现在的时间差,单位为s
 ot = new Date().getTime(); //重新赋值时间,用于下次计算
 var perload = evt.loaded - oloaded; //计算该分段上传的文件大小,单位b
 oloaded = evt.loaded;//重新赋值已上传文件大小,用以下次计算
 //上传速度计算
 var speed = perload/pertime;//单位b/s
 var bspeed = speed;
 var units = 'b/s';//单位名称
 if(speed/1024>1){
 speed = speed/1024;
 units = 'k/s';
 }
 if(speed/1024>1){
 speed = speed/1024;
 units = 'M/s';
 }
 speed = speed.toFixed(1);
 //剩余时间
 var resttime = ((evt.total-evt.loaded)/bspeed).toFixed(1);
 time.innerHTML = ',速度:'+speed+units+',剩余时间:'+resttime+'s';
 if(bspeed==0) time.innerHTML = '上传已取消';
 }
 </script>
</head>
<body>
<progress id="progressBar" value="0" max="100" style="width: 300px;"></progress>
<span id="percentage"></span><span id="time"></span>
<br /><br />
<input type="file" id="file" name="myfile" />
<input type="button" onclick="UpladFile()" value="上传" />
<input type="button" onclick="cancleUploadFile()" value="取消" />
</body>
</html>

文档

js实现文件上传功能 后台使用MultipartFile

本文为大家分享了js实现文件上传功能的具体代码,供大家参考,具体内容如下:<。");}else{ alert("上传失败。");}} //上传失败 function uploadFailed(evt) { alert("上传失败
推荐度:
标签: 上传 上传文件 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top