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(本地 ...
随机推荐
- 剑指XX游戏(六) - 轻松搞定面试中的红黑树问题
原文地址 http://blog.csdn.net/silangquan/article/details/18655795?utm_source=tuicool&utm_medium=refe ...
- java web 开发快速宝典 ------电子书
http://www.educity.cn/jiaocheng/j10259.html 1.2.1 JDk 简介 JDK是Sun公司在1995年推出的一套可以跨操作系统平台编译和运行Java程序的开 ...
- wpf prism IRegionManager 和IRegionViewRegistry
引入了一个新的问题,IRegionViewRegistry和IRegionManager都具有RegisterViewWithRegion方法,二者有区别么? 答案是——没有.我们已经分析过,在Uni ...
- Java-获取当前IP归属地
知道IP,获取当前IP归属地的Java程序: package Main; import java.io.BufferedReader; import java.io.DataOutputStream; ...
- 进程分配内存的两种方式--brk() 和mmap()(不设计共享内存)(转)
如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...
- Linux物理网卡聚合及桥接
说明: (1).在网卡聚合绑定之前,要先停用NetworkManager服务(或者在网卡中添加参数:NM_CONTROLLED=no),否则系统重启后绑定的IP失效了. # systemctl sto ...
- PYTHON TDD学习(一)-->Python 3.4版本环境安装Django及其启动
1.安装Python3.4版本,原因:3.4及其以后版本默认自带pip工具,非常好用 2.django 安装命令(c:\Python34\Scripts):pip install django 3.s ...
- 用户及用户组管理(week1_day4)
本节内容 useradd userdel usermod groupadd groupdel 用户管理 为什么需要有用户? 1. linux是一个多用户系统 2. 权限管理(权限最 ...
- Leetcode #9 Easy <Palindrome Number>
题目如图,下面是我的解决方法: class Solution { public boolean isPalindrome(int x) { if(x < 0) //由题意可知,小于0的数不可能为 ...
- 【DSP开发】回马枪要你命 德州仪器发布最强ARM芯片Keystone II
之前许多传闻称德州仪器将会彻底放弃OMAP系列ARM处理器,从此离开手持设备的江湖.如果你信以为真,那可就太小看德州仪器这个老狐狸了--要知道德州仪器诞生的比Intel都还早几年.三小时前,德州仪器宣 ...