记一次XMLHttpRequest上传文件中文名乱码报错

1 篇文章 0 订阅
1 篇文章 0 订阅

使用

unescape(encodeURIComponent(file.name))修饰文件名即可

后台不需要更改

 

funUploadFile : function(file){
			
			var self = this;  // 在each中this指向没个v  所以先将this保留
			
			var formdata = new FormData();
			formdata.append("fileList", file);	         		
			var xhr = new XMLHttpRequest();
			// 绑定上传事件
			// 进度
		    xhr.upload.addEventListener("progress",	 function(e){
		    	// 回调到外部
		    	self.onProgress(file, e.loaded, e.total);
		    }, false); 
		    // 完成
		    xhr.addEventListener("load", function(e){
	    		// 从文件中删除上传成功的文件  false是不执行onDelete回调方法
		    	self.funDeleteFile(file.index, false);
		    	// 回调到外部
		    	self.onSuccess(file, xhr.responseText);
		    	if(self.uploadFile.length==0){
		    		// 回调全部完成方法
		    		self.onComplete("全部完成");
		    	}
		    }, false);  
		    // 错误
		    xhr.addEventListener("error", function(e){
		    	// 回调到外部
		    	self.onFailure(file, xhr.responseText);
		    }, false);  
			
			xhr.open("POST",self.url, true);
			console.log(unescape(encodeURIComponent(file.name)))
			xhr.setRequestHeader('X-File-Name', unescape(encodeURIComponent(file.name)));
			xhr.send(formdata);
		}
xhr.setRequestHeader('X-File-Name',file.name);

xhr.setRequestHeader('X-File-Name', unescape(encodeURIComponent(file.name)));

即可

后台不需要更改直接接收到中文路径

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值