我想以下類型的功能
如何發送和接收文件?
有兩個用戶A
和B
兩者都訪問同一頁面
此頁面上有一個按鈕(發送文件)。
當A
點擊按鈕的Open Dialog
框應出現
當A
從Open Dialog
框中選擇一個文件,那麼應該有一個鏈接出現在B
的頁面包含文件名
當B
點擊了鏈接,一個SaveAs
對話框應該出現,給後名稱和路徑文件下載應該開始。
在這方面的任何形式的幫助將不勝感激!
我想以下類型的功能
如何發送和接收文件?
有兩個用戶A
和B
兩者都訪問同一頁面
此頁面上有一個按鈕(發送文件)。
當A
點擊按鈕的Open Dialog
框應出現
當A
從Open Dialog
框中選擇一個文件,那麼應該有一個鏈接出現在B
的頁面包含文件名
當B
點擊了鏈接,一個SaveAs
對話框應該出現,給後名稱和路徑文件下載應該開始。
在這方面的任何形式的幫助將不勝感激!
打開對話框中來達到的與HTML輸入:<input type="file">
另存爲對話框使用html定位點:<a href="www.myserver.com/download.aspx?filename='the file'">
用戶A選擇文件後,您可以使用AJAX或onsubmit表單通過您創建的upload.aspx頁面上載文件。
在用戶B的機器上,您使用AJAX調用updatefilelist.aspx頁面,該頁面返回可用文件列表。一旦用戶A的新文件上傳並保存在服務器上,用戶B的AJAX調用updatefilelist.aspx的下一個ping將更新其屏幕上顯示的列表以包含新文件。
點擊該文件可調用所需文件名的download.aspx頁面 - 您需要在此處設置Response.ContentType
和Response.AddHeader("Content-Disposition", "attachment:filename=""" & IO.Path.GetFileName(Request.QueryString("filename")) & """")
。保存爲對話框然後會自動彈出。
那麼這個頁面可以分成兩部分:一個文件上傳控件,另一個通過AJAX每3-4秒輪詢一次,看看是否有新文件。
方「A」有一個標準的文件上傳控制,並使用標準的.NET方式保存上傳的文件(請參閱FileUpload.PostedFile.SaveAs(路徑),容易的東西)。文件上傳完成後,刷新此頁面。
Side「B」是一個從AJAX調用,XML,JSON或純文本中獲取其內容的div。有一個叫做「link.aspx」的AJAX頁面,可以以任何你想要的格式來回放內容。
對於鏈接,如果你想強制「下載」窗口,那麼文件需要是在瀏覽器中不能正常顯示的類型,或者你需要使用另一個aspx頁面來提供文件並強制一個對話框保存或打開。
aspx頁面將被稱爲「file.aspx」,你可以傳入查詢字符串參數(「id」或其他)來告訴它你想要什麼文件。你的這個頁面背後的代碼會找出你從查詢字符串PARAM所需要的文件,然後將擔任出來的文件:
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.fileName);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "image/jpeg"; // you gotta figure out the content type of the file here though. This is just the one for JPEGS.
byte[] buffer = new byte[file.Length];
dl.Read(buffer, 0, (int)file.Length);
Response.BinaryWrite(buffer);
Response.End();
你的意思是上傳文件到服務器,然後'B'會從服務器上下載。 – jams 2011-05-16 13:41:22
是的,任何解決方案都需要A:上傳到服務器,然後B:從服務器下載。沒有辦法在A和B之間創建某種連接,而不使用服務器作爲中介。 – ic3b3rg 2011-05-16 15:11:30