如何在ng-file-upload中设置内容处理字符编码



我试图上传一个文件与em/en dash ' - '字符在其名称(编码在utf8)。字符在浏览器请求中被正确呈现(查看chrome网络监视器)。但是没有编码信息随请求一起发送到服务器,然后该字符被服务器解释为' '(代码页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);

您可以使用上传的fileName选项来设置内容配置的文件名。

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

相关内容

  • 没有找到相关文章

最新更新