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. ActivityLifecycleCallbacks

    public class ActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks, ActivityS ...

  2. Windows上配置Mask R-CNN及运行示例demo.ipynb

    最近做项目需要用到Mask R-CNN,于是花了几天时间配置.简单跑通代码,踩了很多坑,写下来分享给大家. 首先贴上官方Mask R-CNN的Github地址:https://github.com/m ...

  3. 异常之【You have an error in your SQL syntax】

    异常如下: ### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException ...

  4. 外连接的用法 -- 《SQL进阶教程》 jupyter note

    import pandas as pd import sqlite3 conn = sqlite3.connect('1-5.db') 用外连接进行行列转换1(行 -> 列): 制作交叉表 怎么 ...

  5. Leetcode之动态规划(DP)专题-712. 两个字符串的最小ASCII删除和(Minimum ASCII Delete Sum for Two Strings)

    Leetcode之动态规划(DP)专题-712. 两个字符串的最小ASCII删除和(Minimum ASCII Delete Sum for Two Strings) 给定两个字符串s1, s2,找到 ...

  6. AI测试——旅程的终点

    在2019年6月,我产生了一个想法,即人工智能探索测试AIET(Artificial intelligence exploration test),大概用了一周时间来思考怎么把人工智能应用到测试领域, ...

  7. pandas 分组统计

    # coding:utf-8 import pandas as pd import numpy as np # path = r'C:\Users\wuzaipei\Desktop\桂林三金项目签到情 ...

  8. C++学习笔记-运算符重载

    运算符重载使得用户自定义的数据以一种更简洁的方式工作 运算符重载规则 重载运算符的限制 可以重载的运算符 + - * / % ^ & | ~ ! = < > += -= *= /= ...

  9. mysql——修改表名、修改字段名、修改字段数据类型、增加字段、删除字段、修改字段排列位置、修改存储引擎、删除表 (示例)

    一.创建表和插入数据: ), mz ), bz ) ); ,'sww','sww01'); ,'aww','aww02'); ,'qww','qww03'), (,'eww','eww04'), (, ...

  10. (转) pip Fatal error in launcher: Unable to create process using

    接上篇“Eclipse启动报错:JVM terminated. Exit code=2”,今天把Python的安装位置也从C盘剪切到了D盘, 然后修改了Path环境变量中对应的盘符:D:\Python ...