部分js代码

send_request = function(){//这是从后台获取认证策略等信息。
  var htmlobj=$.ajax({url:root+"/service/policyInfoController/policy",async:false});
  return htmlobj.responseText;
}; function get_signature()//读取获得的参数
{
//可以判断当前expire是否超过了当前时间,如果超过了当前时间,就重新取一下.3s 做为缓冲
  now = timestamp = Date.parse(new Date()) / 1000;
  if (expire < now + 3)
  {
    body = send_request();
    console.log(body);
    var obj = eval ("(" + body + ")");
    host = obj['host']
    policyBase64 = obj['policy']
    accessid = obj['accessid']
    signature = obj['signature']
    expire = parseInt(obj['expire'])
    callbackbody = obj['callback']
    key = obj['dir']
    return true;
  }
  return false;
}; //组装发送数据
var request = new FormData();
request.append("OSSAccessKeyId",accessid);//Bucket 拥有者的Access Key Id。
request.append("policy",policyBase64);//policy规定了请求的表单域的合法性
request.append("Signature",signature);//根据Access Key Secret和policy计算的签名信息,OSS验证该签名信息从而验证该Post请求的合法性
//---以上都是阿里的认证策略
request.append("key",g_object_name);//文件名字,可设置路径
request.append("success_action_status",'200');// 让服务端返回200,不然,默认会返回204
request.append('file', file);//需要上传的文件 file request.append("callback",callbackbody);//回调,非必选,可以在policy中自定义 $.ajax({
url : host, //上传阿里地址
data : request,
processData: false,//默认true,设置为 false,不需要进行序列化处理
cache: false,//设置为false将不会从浏览器缓存中加载请求信息
async: false,//发送同步请求
contentType: false,//避免服务器不能正常解析文件---------具体的可以查下这些参数的含义
dataType: 'JSONP',//不涉及跨域 写json即可
   type : 'post',
  success : function(callbackHost, request) { //callbackHost:success,request中就是 回调的一些信息,包括状态码什么的
var name=$this.attr("name");
$this.closest("li").append("<span class='img-span'><img src="+host+"/"+get_uploaded_object_name(file.name)+">");//动态向页面添加上传图片
},
error : function(returndata) {
alert("上传图片出错",false);
}
});

由于业务原因以及一些样式的问题不得不用ajax方式上传,大家参考下即可。

  

最新文章

  1. 解决IE浏览器文字上面放无内容的元素选不中的方法
  2. 分解大质数模板(复杂度小于sqrt(n))
  3. TCP中 recv和sendf函数
  4. BroadcastReceiver study
  5. MySQL 建表字段长度的限制
  6. tyvj P1716 - 上帝造题的七分钟 二维树状数组区间查询及修改 二维线段树
  7. 可选头 IMAGE_OPTIONAL_HEADER
  8. hbase importtsv
  9. jx problem
  10. PHP设计模式:抽象工厂
  11. Linux中FTP服务器的搭建
  12. cat、tail、head、tee、grep、wc、sort文件操作和过滤
  13. CSS3 background-size图片自适应
  14. mac-os安装autojump
  15. WPF一组Radio与enum绑定
  16. 为什么java的类是单继承的,接口是多继承的
  17. C# zip -ICSharpCode.SharpZipLib
  18. php函数xml转化数组
  19. Codeforces Round #515 (Div. 3)
  20. springboot date接收参数

热门文章

  1. 《JavaScript面向对象编程指南(第2版)》读书笔记(一)
  2. ABP入门系列(16)——通过webapi与系统进行交互
  3. Excel 中使用sql语句查询
  4. 使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一) - 视图&amp;功能篇
  5. clear-fix清除浮动的两种写法
  6. 使用Express开发个人网站(一)
  7. 【JavaScript】让事件支持先发布后订阅
  8. JS中对于prototype的理解
  9. Spring框架入门
  10. hdu4597 Play Game 区间DP