Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在ng文件上传中设置内容处置字符编码_Angularjs_Content Disposition_Ng File Upload - Fatal编程技术网

Angularjs 如何在ng文件上传中设置内容处置字符编码

Angularjs 如何在ng文件上传中设置内容处置字符编码,angularjs,content-disposition,ng-file-upload,Angularjs,Content Disposition,Ng File Upload,我试图上传一个文件,文件名中有一个em/en破折号“–”字符(用utf8编码)。该字符在浏览器请求中正确呈现(查看chromes网络监视器)。但是没有编码信息与请求一起发送到服务器,然后服务器将字符解释为“–”(代码页28591,iso-8859-1)。我开始明白,使用 filename*=UTF-8''myFileWith–In.pdf 可以工作,但似乎无法以适当的方式操纵filename属性,例如不使用双引号 我的角度代码看起来像这样,从这里可以向内容配置添加编码信息吗 function

我试图上传一个文件,文件名中有一个em/en破折号“–”字符(用utf8编码)。该字符在浏览器请求中正确呈现(查看chromes网络监视器)。但是没有编码信息与请求一起发送到服务器,然后服务器将字符解释为“–”(代码页28591,iso-8859-1)。我开始明白,使用

filename*=UTF-8''myFileWith–In.pdf 
可以工作,但似乎无法以适当的方式操纵filename属性,例如不使用双引号

我的角度代码看起来像这样,从这里可以向内容配置添加编码信息吗

function uploadFile(file, url)
{
     $upload.upload({
        url: url,
        method: 'POST',
        file: file,
     });

}
在服务器上,我可以使用以下代码来更正编码,但它假设所有传入流量都是用utf8编码的,需要有一种方法来识别请求中的编码

Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] isoBytes = iso.GetBytes(file.FileName);
string msg = utf8.GetString(isoBytes);

您可以使用上载的文件名选项设置内容处置的文件名。请参阅自述文件参考以获取解释

function uploadFile(file, url)
{
     $upload.upload({
        url: url,
        method: 'POST',
        file: file,
        fileName: 'UTF-8\'\'' + file.name
     });

}