我遇到問題。我有docx文件存儲爲數據庫中的字節數組。我需要得到這個文件的網址。網址應該像http://my-site.com ...但我不知道我怎麼能達到它。我用內存流,文件流等閱讀了許多主題,但我仍不明白我如何達到這個目標。我寫在ASP MVC C#中。如何從字節數組中獲取url?
回答
對於ASP.NET MVC部分,您可以使用控制器的File
方法來返回字節數組作爲文件下載,就像本例中一樣。
public class HomeController : Controller
{
public ActionResult Download(string id)
{
byte[] fileInBytes = GetFileDataFromDatabase(id);
return File(fileInBytes, "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
id + ".docx");
}
private byte[] GetFileDataFromDatabase(string id)
{
// your code to access the data layer
return byteArray;
}
}
的網址是:http://.../home/download/{someId}
我應該能夠執行下載後下載文件?我沒有結果。 如何獲取此Url? 對不起愚蠢的問題,但工作wirh文件是非常困難的。 – smile
我剛剛執行我的示例與URL(根據默認的MVC路由)http:// localhost:.../home/download/1234和瀏覽器提示我一個下載對話框。但這僅僅是一個示例 - 如果它不起作用,請張貼您的控制器的一些代碼。 –
事情是這樣的:
[HttpGet]
[Route("file/{fileId}")]
public HttpResponseMessage GetPdfInvoiceFile(string fileId)
{
var response = Request.CreateResponse();
//read from database
var fileByteArray= ReturnFile(fileId);
if (fileByteArray == null) throw new Exception("No document found");
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(new MemoryStream(fileByteArray));
response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = fileId+ ".docx"
};
response.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
response.Headers.Add("Content-Transfer-Encoding", "binary");
response.Content.Headers.ContentLength = fileByteArray.Length;
return response;
}
,或者如果你有一個剃刀的mvc網站只需使用FileResult:Download file of any type in Asp.Net MVC using FileResult?
這個實現是用於休息api的,現在是一個簡單的解釋:因爲你正在從DB讀取shebang,所以一旦響應離開控制器,就需要保持它可供客戶端使用(保存在內存中或磁盤上以供使用由客戶),更多細節:http://stackoverflow.com/questions/8156896/difference-between-memory-stream-and-filestream – SilentTremor
我不好,我用了兩個內存流:),更新 – SilentTremor
- 1. 如何從字節數組中獲取字節並獲取數字
- 2. 如何從PictureBox獲取字節數組?
- 3. 如何從JTextArea獲取字節數組?
- 4. 從Cloudinary URL獲取字節[]
- 5. 如何從字節數組([UInt8])獲取一個字節(UInt8)?
- 6. 如何從URL中獲取數字?
- 7. 如何從URL獲取數組參數?
- 8. 如何從一個字節數組中獲取數據
- 9. 從URL中獲取前n個字節
- 10. 如何獲取字節數組的TypeCode?
- 11. 如何從PDF生成的PDF中獲取字節數組?
- 12. 如何在swift 3中從base64獲取一個字節數組?
- 13. 如何從Spring WebClient的ClientResponse中獲取最佳字節數組?
- 14. 如何從可繪製資源中獲取字節數組?
- 15. 如何從c中的字節數組讀取字節範圍
- 16. 從字節數組中獲取字節塊的起始位置
- 17. 從字節數組中獲取最後一個字節
- 18. 獲取從字節數組字符數組,然後返回字節數組
- 19. 如何使用CFNetwork從套接字獲取字節數組?
- 20. 從InputStream獲取字節數組
- 21. 從ByteArrayInputStream獲取內部字節數組
- 22. 從字節數組獲取文件名
- 23. 獲取從位圖的字節數組
- 24. 從字節數組獲取第0位
- 25. 從html文件獲取字節數組
- 26. 獲取字節數組字節元帥
- 27. 從指針數組中獲取特定字節數組的大小爲字節
- 28. PHP從URL獲取數組
- 29. 如何從字節數組中的字節數組開始提取字節不在字節邊界c#
- 30. 如何從字節數組
我想你的意思該URL在文檔中?效率不是很高,但如果對字節的理解不夠深入,則可以將文檔轉換爲字符串,然後使用方法進行搜索,以瞭解如何使用。 http://stackoverflow.com/questions/11654562/how-convert-byte-array-to-string –