<script src='//sdk.amazonaws.com/js/aws-sdk-2.5.0.min.js' title="引入SDK"></script> <input type="file" name="myfile" id="myfile" onchange="update_file()" title="选择要上传的文件" /> <script type="text/javascript"> function update_file() { //要上传的文件 var obj = document.querySelector("#myfile").files[0]; if(!obj || obj == 'undefined'){ return false; } //调用弹出提示,并锁定,这里使用 artDialog 4.x 的写法 var t = $.dialog.tips('正在上传,请稍候…',100000000).lock(); AWS.config.update({ accessKeyId: 'AWS提供的AK', secretAccessKey: 'AWS提供的SK' }); AWS.config.region = '上传目标' AWS.config.endpoint = 'https:// 上传的域名' AWS.config.s3ForcePathStyle = true; var bucket_name = '存储桶标识' var domain = "https://访问的域名/"; //上传前生成新的Key值,采用 年/月/毫秒.文件格式 var tmplist = (obj.name).split("."); var ext = tmplist[((tmplist).length-1)]; var d = new Date(); var month = d.getMonth(); if(month<10){ month = "0"+month; } var keyId = d.getFullYear()+"/"+month+"/"+d.getTime()+"."+ext; // var s3 = new AWS.S3({ params: { Bucket: bucket_name } }); var params = {Key: keyId, ContentType: obj.type, Body: obj}; s3.upload(params, function(err, data) { if(err){ t.content(err).time(2); return false; } //上传成功后 if(data){ //返回的文件写入表单中 $("#file_id").val(domain+keyId); //清除一些信息及提醒信息 $("#myfile").val(""); $("#up_tips").html('视频上传成功'); $("#myfile_html").hide(); //关闭锁定的提示窗口 t.close(); } }).on("httpUploadProgress", function(e) { //上传进度条 var precent = parseInt(e.loaded, 10) / parseInt(e.total, 10); precent = parseInt(precent * 100); t.content('正在上传中,请稍候… '+precent.toString()+'%').time(7000); }); return true; } </script>
至此AWS客户端文件上传成功!