码迷,mamicode.com
首页 > Web开发 > 详细

Aws pre-signed URLs 上传文件,带进度显示

时间:2019-03-25 16:15:14      阅读:540      评论:0      收藏:0      [点我收藏+]

标签:table   ogr   pre   select   aws   cli   file   put   multi   


注意:YourUrl,就是获取 pre-signed URLs的地址

<input type="file" id="selector" multiple>
<button onclick="upload()">Upload</button>

<div id="status">No uploads</div>

<script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">

 function upload() {
   [$(‘#selector‘)[0].files].forEach(fileObj => {
     var file = fileObj[0]
     // 从服务器获取一个URL
     retrieveNewURL(file, url => {
       // 上传文件到服务器
       uploadFile(file, url)
     })
   })
 }

 // 发请求到Node.js server获取上传URL。
 function retrieveNewURL(file, cb) {
   $.get(`YourUrl?name=${file.name}`, (url) => {
     cb(url)
   })
 }

 // 使用XMLHttpRequest来上传文件到S3。
 function uploadFile(file, url) {
     var xhr = new XMLHttpRequest ()

     // 加载进度条
     xhr.upload.onprogress = function (e) {
         // For uploads
         if (e.lengthComputable) {
             console.log(e.loaded / e.total);
             $(‘#status‘).text(‘上传进度:‘ + ((e.loaded / e.total)*100).toFixed(2) + ‘%‘);
         }
     };
     xhr.open(‘PUT‘, url, true)
     xhr.send(file)


     xhr.onload = () => {
       if (xhr.status == 200) {
         $(‘#status‘).text(`${file.name} 上传成功。`)
       }
     }
 }

</script>

 

Aws pre-signed URLs 上传文件,带进度显示

标签:table   ogr   pre   select   aws   cli   file   put   multi   

原文地址:https://www.cnblogs.com/codeaaa/p/10594233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!