0

我正在制作项目,其中包括从云(Azure)存储下载文件。我想打开另存为对话框但没有得到它。我使用了以下代码。

enter code here // Retrieve reference to a blob named "myblob".
        CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob1");
        string FileName = "a3.jpg";
        string Filename = FileName.Substring(0, FileName.LastIndexOf("."));``
        Response.AppendHeader("Content-Disposition", "attachment; filename=" FileName);
        Response.TransmitFile(Server.MapPath("~/blockBlob/myblob1/" + Filename));
        Response.End();

        /* to download file from cloud

使用(var fileStream =System.IO.File.OpenWrite(@"C:\Users\prak\Pictures\ppp.JPG")) { blockBlob.DownloadToStream(fileStream); Response.Write("
"); Response.Write("下载成功!"); }*/

请帮助...在此先感谢

4

1 回答 1

0

您需要将表单重定向到 ashx 处理程序,该处理程序将文件内容直接写入输出流。这并不特定于 Azure,但如果从 blob 访问文件,则可能需要将其临时移动到 Web 服务器,以便您可以在“附件;文件名”中引用本地路径。

Response.Clear();
Response.ContentType = "image/jpeg";
Response.AddHeader( "Content-Disposition", "attachment;filename=\"myfile.jpg\"" );
// write file data to output stream here
Response.End();

另一种方法是HttpWebRequest按照以下帖子中的说明使用:

从 URL 下载/流式传输文件 - asp.net

于 2013-04-16T10:43:54.013 回答