中国开发网: 论坛: Delphi/BCB: 贴子 242161
pcplayer
下载文件,从服务器端输出流,文件的中文名乱码的问题
procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
AFile:FileStream;
AFileName:string;
Bfile:System.IO.FileInfo;
Abin:array of Byte;
begin
AFileName:='D:\test\图片.bmp';
AFile:=FileStream.Create(AFileName,FileMode.Open);

BFile:=System.IO.FileInfo.Create(AFileName);
AFileName:=BFile.Name;
BFile.Free;

SetLength(ABin,AFile.Length);
AFile.Read(ABin,0,AFile.Length);

try
Response.ContentType := 'application/octet-stream';
Response.AddHeader('Content-Disposition','attachment;filename='+
{HttpUtility.UrlEncode(AfileName,Encoding.UTF8 ) }Server.UrlPathEncode(AFileName));
Response.ContentEncoding:=Encoding.Unicode;
Response.BinaryWrite(ABin);
finally
AFile.Free;
end;
end;

这里,要对文件名编码,采用两种方式都行:
1. HttpUtility.UrlEncode(AfileName,Encoding.UTF8 )
2. Server.UrlPathEncode(AFileName)

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录