如何生成下载文件名?

时间:2009-09-28 17:47:19

标签: c# asp.net filesystems httpwebrequest

我正在创建asp.net特殊文件管理器。所有文件信息都保存到SQL Server表中。我的桌子就在这里

Table tFile(
FileID uniqueidentifier,
FileName nvarchar(50),
Extension nvarchar(50))

上传过程是:首先我插入表格行,然后将文件上传到服务器。然后将文件重命名为FileID(GUID值)。例如:4a6327c4-0596-4949-a5f2-a639e934d534.JPG

插入的表格行就像这样

4a6327c4-0596-4949-a5f2-a639e934d534 | image1 | JPG

并像这样在服务器上存档

www.domain.com/aa/Files/4a6327c4-0596-4949-a5f2-a639e934d534.JPG

我的问题是当我下载当前文件时,已下载4a6327c4-0596-4949-a5f2-a639e934d534.JPG命名文件。我需要image1.JPG

当任何用户下载当前文件时,如何生成当前文件名,如'image1.jpg'

1 个答案:

答案 0 :(得分:9)

有一个download.aspx页面,它将图像的GUID作为查询字符串参数。然后,您可以在数据库中查找此值以获取文件路径并将其发送到浏览器,如下所示:

Response.AddHeader("Content-Disposition", "attachment;filename=image1.jpg");
Response.ContentType = "image/jpeg";
Response.WriteFile(pathToFileOnYourServer);

您可以动态构建 filename = image1.jpg 部分,以便随意调用图像。