长文件名和中文文件名的文件为什么不能下载---等三个问题(300分谢诸大侠)

qinamao 2003-11-08 02:33:00
关于文件下载,我有两个问题:
1、上传文件(含路径文件全名变量:upfile)时,我想将upfile.ContentType存入sql数据库,但是好象编码问题,如upfile.ContentType="application/msword"
其中有"/",如何解决这个问题?

2、文件下载时,对于中文和长文件名的文件,则提示无法找到路径及打开页面。

3、另有如70M左右的文件上传没法成功。我已经在web.config中加入了:
<httpRuntime
executionTimeout="900"
maxRequestLength="819200"
useFullyQualifiedRedirectUrl="false"
/>


附:我的下载代码为:
strFileName=文件存放的物理路径的带扩展名的文件名(经Server.MapPath()转换过的)

FileStream fs = new FileStream(strFileName, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Label2.Text=strFileName;
Response.Clear();
Response.ClearHeaders();
Response.ContentType = "application/octet-stream";
strFileName = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(strFileName));
Label1.Text=strFileName;

Response.AppendHeader("Content-Disposition", "attachment; filename="+strFileName);
Response.BinaryWrite(bytes);
Response.End();
...全文
161 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
comy 2003-11-10
  • 打赏
  • 举报
回复
中文文件名长了之后就是不行,我试了很多方法,还没有发现好的解决办法。
关注!!!!!!!
snla 2003-11-10
  • 打赏
  • 举报
回复
用中文名要编码
qinamao 2003-11-10
  • 打赏
  • 举报
回复
楼上的我试过了,还是老样子!
我还必须使用中文文件名和长文件名,我是将上传的文件既能被ftp用户直观的看到和下载,又要能被web用户从页面上直接下载,有什么办法解决呢?
hiaming 2003-11-10
  • 打赏
  • 举报
回复
http://202.96.112.25/cixi_Gov/news/info_list103102.aspx?s_TypeID=103102
看看我的这个
能正常处理的。

Q:1、上传文件(含路径文件全名变量:upfile)时,我想将upfile.ContentType存入sql数据库,但是好象编码问题,如upfile.ContentType="application/msword"
其中有"/",如何解决这个问题?
A:我用过,能正常加入。我建议你建一个表,存入常用扩展名对应的ContentType,保存时只存doc就行了,很方便.


Q:2、文件下载时,对于中文和长文件名的文件,则提示无法找到路径及打开页面。
你可以将文将下载的链接做点改动,如
string fileName="中文和长文件名的文件";
Response.Write("<a href="+fileName+">下载</a>");
//*****************改为下面的*************************
string fileName="中文和长文件名的文件";
Response.Write("<a href="+Server.UrlEncode(fileName)+">下载</a>");

Q:3、另有如70M左右的文件上传没法成功。我已经在web.config中加入了:
<httpRuntime
executionTimeout="900"
maxRequestLength="819200"
useFullyQualifiedRedirectUrl="false"
/>

A:我也试过,改了这里就可以了.但是,我也在一个客户的服务器上试过就不行,总是出超时,
经检查,他的服务器上有很多病毒,而且所处的网络也有冲击波病毒。可能与这些有关,
没经证实



gOODiDEA 2003-11-09
  • 打赏
  • 举报
回复
参考:

System.IO.FileStream fs = System.IO.File.OpenRead( _FilePath );
byte[] FileData = new byte[ fs.Length ];
fs.Read( FileData, 0, ( int ) fs.Length );
Response.Clear();
Response.AddHeader( "Content-Type", "application/zip" );
string FileName = System.Web.HttpUtility.UrlEncode( System.Text.Encoding.UTF8.GetBytes( _FileName ) );
Response.AddHeader("Content-Disposition", "inline;filename="+ System.Convert.ToChar(34) + FileName + System.Convert.ToChar(34) );
Response.AddHeader("Content-Length", fs.Length.ToString() );
Response.BinaryWrite( FileData );
fs.Close();
//System.IO.File.Delete( _FilePath );
Kanderliu 2003-11-08
  • 打赏
  • 举报
回复
关于文件下载,我有两个问题:
1、上传文件(含路径文件全名变量:upfile)时,我想将upfile.ContentType存入sql数据库,但是好象编码问题,如upfile.ContentType="application/msword"
其中有"/",如何解决这个问

>>>>>>>>>>>>你可以用一个变通的办法,就是只存msword;

2、文件下载时,对于中文和长文件名的文件,则提示无法找到路径及打开页面。

>>>>>>>>>>>对于中文问题,编码就可以解决的.(通过UTF-8),至于文件名称过长,下载是没有问题,只不过,名称会变成***.ASPX,但是打开那个文件,里面的内容是正确的.可以通过程序中,控制文件名称长度,应该可以解决.

3、另有如70M左右的文件上传没法成功。我已经在web.config中加入了.

>>>>>>>>>>这个问题,我也在探索,我提了3个关于文件下载的问题都没有解决!
http://expert.csdn.net/Expert/topic/2405/2405474.xml?temp=1.787966E-02
http://expert.csdn.net/Expert/topic/2397/2397957.xml?temp=.8276026
http://expert.csdn.net/Expert/topic/2410/2410608.xml?temp=.4750025
jasper_liu 2003-11-08
  • 打赏
  • 举报
回复
文件名过长会导致无法下载。

我曾经碰到过,就在程序里把文件名限制到了35个字节。
liuyd 2003-11-08
  • 打赏
  • 举报
回复
你的文件格式是否是GB2312

问题二:你的浏览器是否是以UTF-8发送URL(Internet选项-〉高级—〉设置中的最后一个选项)。
noahart 2003-11-08
  • 打赏
  • 举报
回复
问题一,我做过,ContentType都存到数据库中,没有遇到你的问题。“//”
问题二,好象和编码有关,支持中文不大好,我的现在上传是都用数字或英文组成的文件名存在服务器上,文件的整个中文名都存在相关的表里。下载的时候通过表里的文件路径下载。
问题三,能上传到70M就已经不错了!我也无奈中。。。
qinamao 2003-11-08
  • 打赏
  • 举报
回复
字段长度足够长!
KK4 2003-11-08
  • 打赏
  • 举报
回复
你的文件名在數據庫中的字長長度是否不夠長!!
yjmfdm 2003-11-08
  • 打赏
  • 举报
回复
不会吧。我的好几M的东西,是没有问题的。
qinamao 2003-11-08
  • 打赏
  • 举报
回复
如何解决呢?不是正常不正常的问题呀。
我的实际文件是另外上传到服务器的某个目录内!数据库内的文件名完好!
dongbeiren 2003-11-08
  • 打赏
  • 举报
回复
看看你的数据库中的字段长度是否够长,是不是文件名被截断了
comy 2003-11-08
  • 打赏
  • 举报
回复
2、3问题实属正常

62,242

社区成员

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

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

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

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