use*_*722 5 c# asp.net asp.net-mvc azure azure-blob-storage
我正在使用此代码将文件上传到 Azure blob 存储,container我的 CloudBlobContainer 在哪里
public void SaveFile(string blobPath, Stream stream)
{
stream.Seek(0, SeekOrigin.Begin);
CloudBlockBlob blockBlob = container.GetBlockBlobReference(virtualPath);
blockBlob.Properties.ContentDisposition =
"attachment; filename=" + Path.GetFileName(virtualPath);
blockBlob.UploadFromStream(stream);
}
Run Code Online (Sandbox Code Playgroud)
然后,当用户单击网页中的文件时,我尝试触发下载,提示他们保存/打开文件。我通过调用一个返回到 blob URL 的重定向的 Action 来完成此操作。
public ActionResult LoadFile(string path)
{
string url = StorageManager.GetBlobUrlFromName(path);
return Redirect(url);
}
Run Code Online (Sandbox Code Playgroud)
问题是这将在浏览器中打开文件,例如,当我希望用户留在我的页面上但开始下载文件时,用户将被重定向离开我的网站并在浏览器中显示 .jpg 文件。
实现您想要的效果的一种方法是使用 MVC 操作从 blob 存储中获取图像并返回文件,即:
public ActionResult LoadFile(string path)
{
byteArray imageBytes = ....get img from blob storage
return File(byteArray, "image/png", "filename.ext");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5790 次 |
| 最近记录: |