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

    技术2022-07-11  80

    使用

    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)));

    即可

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

    Processed: 0.012, SQL: 9