如何在不使用瀏覽器保存鏈接的情況下單擊按鈕下載視頻文件.wmv並將其保存到用戶的磁盤上作爲如何使用ASP.NET下載視頻?
2
A
回答
2
這並不難。正如dtb所述,用戶的瀏覽器仍然會要求用戶下載文件的權限,他們可能會選擇在哪裏保存文件。所以它不會是完全自動的。
這裏是一個博客文章的鏈接,解釋如何完成這個using webforms。你有興趣的主要部分是這樣的:
Response.ContentType = "video/x-ms-wmv";
Response.AppendHeader("Content-Disposition","attachment; filename=MyMovie.wmv");
Response.TransmitFile(Server.MapPath("~/videos/MyMovie.wmv"));
Response.End();
這裏是一個鏈接棧溢出問題,這也解釋了how to do it in MVC。
根據你的評論,你想在silverlight做到這一點。我不是silverlight的專家,但這裏有另一個關於堆棧溢出的問題,discusses the issue。
1
可以使用WebClient
下載WMV文件和SaveFileDialog
要求用戶把它放在哪裏: -
void DownloadButton_Click(object sender, RoutedEventArgs e)
{
var dialog = new SaveFileDialog();
if (dialog.ShowDialog().Value)
{
var web = new WebClient();
web.OpenReadCompleted = (s, args) =>
{
try
{
using (args.Result)
using (Stream streamOut = args.UserState As Stream)
{
Pump(args.Result, streamOut);
}
}
catch
{
// Do something sensible when the download has failed.
}
};
web.OpenReadAsync(UriOfWmv, ShowDialog.OpenFile());
}
}
private static void Pump(Stream input, Stream output)
{
byte[] bytes = new byte[4096];
int n;
while((n = input.Read(bytes, 0, bytes.Length)) != 0)
{
output.Write(bytes, 0, n);
}
}
然而,目前情況下不顯示下載進度信息的一種方式。我希望這會進入Silverlight 4,但據我所知,它沒有。
+0
請給我一個'args'的例子嗎?你也沒有在代碼塊'web.OpenReadCompleted =(s,args)=>'中使用's',那是什麼? – 2014-07-21 20:01:06
相關問題
- 1. 如何使用ruby下載YouTube視頻?
- 2. 如何下載此視頻?
- 3. 如何用java下載Youtube視頻
- 4. 如何禁用下載視頻選項
- 5. 如何下載視頻的iframe用C#
- 6. 如何拒絕用戶下載視頻?
- 7. 下載視頻
- 8. 限制在asp.net中下載視頻
- 9. 如何在用web2py上傳視頻後下載視頻
- 10. 用wget下載YouTube視頻
- 11. 用PHP下載Youtube視頻
- 12. 在YouTube上使用get_video下載視頻
- 13. 使用sony remote api下載視頻
- 14. 使用SDK下載iPhone上的視頻
- 15. 從Python使用Youtube上下載視頻
- 16. 使用Retrofit從Url下載視頻
- 17. 使用webview下載視頻文件
- 18. 使用c#下載你管視頻?
- 19. 使用Javascript下載HTML5 mp4視頻
- 20. 使用Java API下載youtube視頻?
- 21. 使用NSOperationQueue的多視頻下載
- 22. 使用flash下載youtube視頻
- 23. 下載視頻軌
- 24. iOS - 下載視頻
- 25. 如何使用Asp.net Flash視頻控件播放視頻文件?
- 26. 如何使視頻和音頻文件可下載?
- 27. 如何防止下載HTML5視頻
- 28. 如何將youtube api下載視頻?
- 29. 如何在iOS中下載YouTube視頻
- 30. 如何下載youtube視頻php?
是否需要'Response.CacheControl =「No-Cache」? 「WriteFile」和「TransmitFile」有什麼不同? – abatishchev 2010-04-11 15:48:15
@abatishchev:根據MSDN,「無緩存」是默認值。所以,你不需要設置它。 WriteFile和TransmitFile之間的區別在於Transmit不會緩衝內存中的內容。請參閱:http://forums.asp.net/t/1513111.aspx – 2010-04-11 15:56:38
但我想在Silverlight應用程序中使用它,並沒有system.web命名空間,所以我不能使用響應 我怎樣才能讀取它到字節[] ??那可能嗎 ? – MirooEgypt 2010-04-11 16:15:30