当文件名包含 special/Unicode 个字符作为文件名时,文件下载名将转换为 Id
File download name converting to Id when it contains special/Unicode characters as file name
我正在尝试下载一个包含 special/Unicode 个字符作为文件名的文件 (ǟǾĂšĦ DeshďêŠħ (INQ0361).docx),我希望文件名保持不变,但它正在下载时使用像 1533.docx.
请查看下面我正在使用的代码
控制器:
public FileResult Download(long id)
{
var document = UnitOfWork.Documents.GetById(id);
return File(document.DocumentData, document.MimeType, document.Filename);
}
查看:
<tbody>
@foreach(var item in Model.OrderByDescending(c=>c.UpdatedDate))
{
<tr>
<td>@Html.ActionLink(@item.FileName, "Download/" + item.DocumentId, new { Controller = "Document" }) </td>
<td>@item.FileSize.GetSizeString()</td>
<td>@String.Format("{0:dd/MM/yyyy}", item.UpdatedDate)</td>
<td>@item.UpdatedBy</td>
<td>@item.Note</td>
</tr>
}
</tbody>
如有任何帮助,我们将不胜感激。如果需要更多信息,请告诉我。
我找到了解决这个问题的方法,请在下面找到我的解决方法
public FileResult Download(long id)
{ var document = UnitOfWork.Documents.GetById(id);
string filename = document.Filename;
filename = Uri.EscapeDataString(filename);
return File(document.DocumentData, document.MimeType, filename);
}
我正在尝试下载一个包含 special/Unicode 个字符作为文件名的文件 (ǟǾĂšĦ DeshďêŠħ (INQ0361).docx),我希望文件名保持不变,但它正在下载时使用像 1533.docx.
请查看下面我正在使用的代码
控制器:
public FileResult Download(long id)
{
var document = UnitOfWork.Documents.GetById(id);
return File(document.DocumentData, document.MimeType, document.Filename);
}
查看:
<tbody>
@foreach(var item in Model.OrderByDescending(c=>c.UpdatedDate))
{
<tr>
<td>@Html.ActionLink(@item.FileName, "Download/" + item.DocumentId, new { Controller = "Document" }) </td>
<td>@item.FileSize.GetSizeString()</td>
<td>@String.Format("{0:dd/MM/yyyy}", item.UpdatedDate)</td>
<td>@item.UpdatedBy</td>
<td>@item.Note</td>
</tr>
}
</tbody>
如有任何帮助,我们将不胜感激。如果需要更多信息,请告诉我。
我找到了解决这个问题的方法,请在下面找到我的解决方法
public FileResult Download(long id)
{ var document = UnitOfWork.Documents.GetById(id);
string filename = document.Filename;
filename = Uri.EscapeDataString(filename);
return File(document.DocumentData, document.MimeType, filename);
}