我正在使用此代码将文件上传到 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);
}
然后,当用户单击网页中的文件时,我尝试触发下载,提示他们保存/打开文件。我通过调用一个返回到 blob URL 的重定向的 Action 来完成此操作。
public ActionResult LoadFile(string path)
{
string url = StorageManager.GetBlobUrlFromName(path);
return Redirect(url);
}
问题是这将在浏览器中打开文件,例如当我希望用户留在我的页面上但开始下载文件时,用户将被重定向离开我的网站并在浏览器中显示 .jpg 文件。
最佳答案
您可能会错过在设置属性后调用blockBlob.SetProperties()
。
在我的代码中,它看起来像这样:
blob.CreateOrReplace();
blob.Properties.ContentType = "text/plain";
blob.Properties.ContentDisposition = "attachment; filename=" + Path.GetFileName(blobName);
blob.SetProperties(); // !!!
关于c# - Azure Blob 存储下载文件而不是在浏览器中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940796/