如何解决下载文件时文件名过长被截断的问题?

宏羽 2007-05-08 11:59:34
各位网友:
最近在用Asp.Net写一个文件下载程序。遇到了一个棘手的问题。客户要求下载后的文件名全部是中文名,这个我已解决,但出现了新的问题。就是当文件名过长(大概是编码后文件名长度不能超过255个字符)时,系统将自动截断文件名的前面一部分。这样下载后的文件名很难被用户理解,不符合他们的要求。请问如何解决这个问题?
我的代码(Asp.Net)如下:
public void DownLoadFiles(string fullName,string SaveAsFileName)
{
//fullName是文件在服务器上的实际物理路径
//SaveAsFileName是另存为的文件名,就是保存到客户端的文件名
if (fullName == "")
return;
string path = Server.MapPath("../" + fullName);
System.IO.FileInfo file = new System.IO.FileInfo(path);
string Ext=fullName.Substring(fullName.LastIndexOf("."));
Response.Clear();
Response.ContentType = "text/plain";
Response.ContentType = "application/octet-stream";
if (SaveAsFileName.Length > 22) //没办法,现在只能将文件名中超过的
SaveAsFileName = SaveAsFileName.Substring(0, 22);//部分手工截去
string filename = System.Web.HttpUtility.UrlEncode(SaveAsFileName, System.Text.Encoding.UTF8);
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename + Ext);
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
try
{
Response.AddHeader("Content-Length", file.Length.ToString());
}
catch (System.IO.FileNotFoundException e)
{
System.Diagnostics.Debug.Write(e.Message);
}
Response.ContentType = "application/octet-stream";
try
{
Response.WriteFile(file.FullName);
}
catch (System.IO.FileNotFoundException e)
{
System.Diagnostics.Debug.Write(e.Message);
}
catch (System.IO.DirectoryNotFoundException e)
{
System.Diagnostics.Debug.Write(e.Message);
}
Response.End();
}
...全文
2031 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weizhuangzhi 2007-05-08
  • 打赏
  • 举报
回复
没办法,除非你有办法分词,否则程序很难理解从什么地方截断是有意义的。
blueskygenius 2007-05-08
  • 打赏
  • 举报
回复
學習ing.....
宏羽 2007-05-08
  • 打赏
  • 举报
回复
我的意思是说如何保留编码后长度超过255个字符的文件名?使得下载后文件名不被截断?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧