FormData传输文件

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传输文件的更多相关文章
- http使用formData方式传输文件请求
转载请注明出处: 项目中有遇到http使用formData请求传输文件,在此记录一下 1.依赖jar包: <dependency> <groupId>org.apache.ht ...
- FormData实现文件上传
我用到FormData传输的使用场景:vant UI组件里面 的图片上传这块,需要调用后台的图片上传接口,使用的是FormData方式上传的 https://www.cnblogs.com/hutuz ...
- Django--多对多表的创建、contentType、ajax、ajax传输json数据格式、ajax传输文件数据、 自定义分页器
MTV与MVC(了解): MTV模型(Django用的就是MTV): M:模型层(models.py) T:templates C:views MVC模型: M:模型层(models.py) V:视图 ...
- SpringMvc接收multipart/form-data 传输的数据 及 PostMan各类数据类型的区别
前段时间遇到一个问题,在spring mvc 服务端接收post请求时,通过html 表单提交的时候,服务端能够接收到参数的值.但是使用httpclient4.3构造post请求,却无法接收到参数的值 ...
- 利用scp传输文件
在linux下一般用scp这个命令来通过ssh传输文件. 从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本地目 ...
- mac与windows通过ftp传输文件
1.两个系统相互传文件,比较通用的方式是用QQ,两台电脑一台各登陆一个qq,发文件就行了,在同一个网段时,qq会自动转换为按局域网的方式传输. 2.本人不愿安装qq,以ftp方式进行传输,先在wndo ...
- 使用SecureCRT在远程主机和本地之间传输文件
终于弄明白怎样在SecureCRT的shell里用命令上传下载文件.SecureCRT记住密码的功能容易设置,于是偶这懒人,后来习惯了用 SecureCRT,但其上传文件功能偶一直没弄明白过.之前一直 ...
- python起的 simpleHTTPServer服务传输文件
python起的 simpleHTTPServer服务传输文件 经同事的介绍,在Linux上传输文件的一种特别方便的方法: python -m SimpleHTTPServer [端口] 端口不填 默 ...
- 利用SSH传输文件
在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...
随机推荐
- 类 kotlin(13)
Kotlin 中使用关键字 class 声明类class Invoice {} 类声明由类名.类头(指定其类型参数.主 构造函数等) 和由大括号包围的类体构成.类头和类体都是可选的:如果一个类没有类体 ...
- tensorflow dnn 参考
https://blog.csdn.net/qq_35976351/article/details/80793487
- ubuntu14.04+安卓7.1(全志源码)+openjdk-8编译
题记:编译花了将近4小时,所以编译源码是很费时的哦,可以在编译的时候可以学习其他的知识 编译环境准备 软件:WorkStation10 系统:ubuntu14.04 内存:8G 处理器:4个 磁盘大小 ...
- ControlTemplate in WPF —— Slider
<!--Slider 样式--> <Style x:Key="StyleForRepeatButton" TargetType="{x:Type Rep ...
- springBoot整合spring、springMVC、mybatis
前文 1.为什么使用springBoot 众所周知,spring是Java在搭建后台时非常实用的框架,其整合了市场上几乎所有的主流框架于一体,使后端编程更加高效.快速: 而SpringBoot更是把s ...
- redis(2)事务的订阅与发布
一.shell终端进行事务的订阅与发布(异步) 发布 : publish channel message [root@localhost ~]# redis-cli -p -h 192.168.42. ...
- AES256位加密
目录 1. 算法简介 2. 算法流程 2.1 扩展密钥 2.2 轮密钥加 2.3 字节代替 2.4 行位移 2.5 列混淆 3. 总结 附录A 运算示例 1.算法简介高级加密标准(英 ...
- python(29)Tinker+BeautifulSoup+Request抓取美女壁纸
原文链接:http://www.limerence2017.com/2019/10/22/python29/ 抓取准备 今天是10月24日,祝所有程序员节日快乐.今天打算写个爬虫抓取3DMGAME论坛 ...
- Python学习之初识
第一章 1.1 typora 的安装与使用 1.1.1 标题的创建: 方法一:用 ###+空格 表示标题,几个#就是几级标题 方法二:菜单栏-->段落-->选择标题 1.1.2 有序列表与 ...
- java线程中start和run的区别
public class Test1 extends Thread { @Override public void run() { while (true) { System.out.println( ...