function uploadfile() {
var inputThis = $(this);
var thisOrderId = inputThis.parent().attr("data-detailId");
var fileObj = this.files[0];
inputThis.parent().children('.fileName').html(fileObj.name); var fileUrl;
var FileController = "http://easyprint.cdn.tronsis.com/open-cdn/ssl/data/write";
var form = new FormData();
form.append("token", userData.cdnToken);
form.append("secure", "false");
form.append("file", fileObj);
form.append("filename", fileObj.name);
$.ajax({
type: "post",
url: FileController,
data: form,
processData: false,
contentType: false,
    xhr: function() {      
var xhr = $.ajaxSettings.xhr();      
if (onprogress && xhr.upload) {        
xhr.upload.addEventListener("progress", onprogress, false);        
return xhr;      
}    
},
success: function(data) {
data = JSON.parse(data);
if (data.header.status == 200) {
easyprint.updateDesignFile({
token: userData.token,
fileUrl: data.data.url,
fileName: data.data.filename,
itemId: thisOrderId
}, function(data) {
if ($(".choODtype.active").hasClass('OrderAll')) {
allOrder();
} else if ($(".choODtype.active").hasClass('pendding')) {
penddingOrder();
} else {
paidOrder();
}
});
} else if (data.header.status == 501) {
easyprint.getCdnToken({
token: userData.token,
}, function(data) {
userData.cdnToken = data.response;
var form = new FormData();
form.append("token", userData.cdnToken);
form.append("secure", "false");
form.append("file", fileObj);
$.ajax({
type: "post",
url: FileController,
data: form,
processData: false,
contentType: false,
    xhr: function() {      
var xhr = $.ajaxSettings.xhr();      
if (onprogress && xhr.upload) {        
xhr.upload.addEventListener("progress", onprogress, false);        
return xhr;      
}    
},
success: function(data) {
data = JSON.parse(data);
if (data.header.status == 200) {
easyprint.updateDesignFile({
token: userData.token,
fileUrl: data.data.url,
fileName: data.data.filename,
itemId: thisOrderId
}, function(data) {
if ($(".choODtype.active").hasClass('OrderAll')) {
allOrder();
} else if ($(".choODtype.active").hasClass('pendding')) {
penddingOrder();
} else {
paidOrder();
}
});
} else if (data.header.status == 501) {
alert("上传失败");
}
}
})
})
}
},
error: function() {
alert("服务器异常")
}
}) function onprogress(evt) {
var loaded = evt.loaded; //已经上传大小情况
var tot = evt.total; //附件总大小
var per = Math.floor(100 * loaded / tot); //已经上传的百分比
inputThis.prev(".percent").show();
inputThis.prev(".percent").children('.son').html(per + "%");
}
}

FormData传输文件的更多相关文章

  1. http使用formData方式传输文件请求

    转载请注明出处: 项目中有遇到http使用formData请求传输文件,在此记录一下 1.依赖jar包: <dependency> <groupId>org.apache.ht ...

  2. FormData实现文件上传

    我用到FormData传输的使用场景:vant UI组件里面 的图片上传这块,需要调用后台的图片上传接口,使用的是FormData方式上传的 https://www.cnblogs.com/hutuz ...

  3. Django--多对多表的创建、contentType、ajax、ajax传输json数据格式、ajax传输文件数据、 自定义分页器

    MTV与MVC(了解): MTV模型(Django用的就是MTV): M:模型层(models.py) T:templates C:views MVC模型: M:模型层(models.py) V:视图 ...

  4. SpringMvc接收multipart/form-data 传输的数据 及 PostMan各类数据类型的区别

    前段时间遇到一个问题,在spring mvc 服务端接收post请求时,通过html 表单提交的时候,服务端能够接收到参数的值.但是使用httpclient4.3构造post请求,却无法接收到参数的值 ...

  5. 利用scp传输文件

    在linux下一般用scp这个命令来通过ssh传输文件. 从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本地目 ...

  6. mac与windows通过ftp传输文件

    1.两个系统相互传文件,比较通用的方式是用QQ,两台电脑一台各登陆一个qq,发文件就行了,在同一个网段时,qq会自动转换为按局域网的方式传输. 2.本人不愿安装qq,以ftp方式进行传输,先在wndo ...

  7. 使用SecureCRT在远程主机和本地之间传输文件

    终于弄明白怎样在SecureCRT的shell里用命令上传下载文件.SecureCRT记住密码的功能容易设置,于是偶这懒人,后来习惯了用 SecureCRT,但其上传文件功能偶一直没弄明白过.之前一直 ...

  8. python起的 simpleHTTPServer服务传输文件

    python起的 simpleHTTPServer服务传输文件 经同事的介绍,在Linux上传输文件的一种特别方便的方法: python -m SimpleHTTPServer [端口] 端口不填 默 ...

  9. 利用SSH传输文件

    在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...

随机推荐

  1. 最简SpringBoot程序制法

    JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...

  2. js设计模式-代理模式

    1.什么是设计模式? 设计模式:在软件设计过程中常用的代码规范,针对特定的场景 2.应用场景: 麦当劳点餐  观察者模式   规定的代码格式 花店送花  :代理模式 真实对象(男同学)-----代理对 ...

  3. Cortex-M3 R0~R15寄存器组 & 特殊功能寄存器组

    [R0~R15寄存器组] Cortex-M3处理器拥有R0~R15的寄存器组,如: [R0~R12通用寄存器]R0~R12都是32位通用寄存器,用于数据操作.其中: R0~R7为低组寄存器,所有的指令 ...

  4. Leaflet - 自定义弹出框(popup)

    有两种方法,一种直接改 CSS,一种是通过继承拓展 popup. 方法一:改 CSS 下面是一个将原有样式清空的设置(可能清的不全,只是提供个思路) .l-popup { &--no-styl ...

  5. NavMenu 导航菜单

    顶栏 适用广泛的基础用法. 导航菜单默认为垂直模式,通过mode属性可以使导航菜单变更为水平模式.另外,在菜单中通过submenu组件可以生成二级菜单.Menu 还提供了background-colo ...

  6. Markdown 介绍

    Markdown 是目前互联网上最流行的写作语言,它使用一些简单的符号(* / ` > [] () #)来标记文本格式,其简洁的语法.优美的格式以及强大的软件支持深受广大网友的喜爱.维基百科上对 ...

  7. Hibernate5+Spring4整合

    (1) pom.xml <!--Spring Object/Relational Mapping --> <dependency> <groupId>org.spr ...

  8. C# List方法中存储的问题

    遇到一个bug,抓耳挠塞好久都没有解决,有必要记录一下. 现在我使用了一个多维list. IList<IList<int>> list = new List<IList& ...

  9. JQuery II

    jQuery事件的绑定 <body> <button>点击1</button> <button>点击2</button> </body ...

  10. XML模块,面向对象思想与类的定义

    今日内容 XML模块,面向对象思想,类的定义 1.XML模块 xml是一种可扩展的标记语言格式如下 使用 <> 作为标签格式 <tag style: '' color:read '' ...