您目前已離線,請等候您的網際網路重新連線

如何: 傳送和接收藉由使用 ASP.NET Web 服務和 Visual C#.NET 的二進位的文件

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:318425
結論
本文將逐步告訴您如何建置 Web 服務和 Web 服務用戶端來傳送和接收藉由使用 Microsoft ASP.NET 和 Microsoft Visual C#.NET 二進位文件。您可以使用 ASP.NET 和 Visual C#.NET 建置 Web 服務,同時儲存二進位的文件到資料夾在 Web 伺服器上,並從 Web 伺服器上的資料夾中擷取二進位文件。您可以為簡單的文件管理系統在 Web 上使用這項服務。

back to the top

建置 Web 服務

  1. 在 Microsoft Visual Studio.NET 中的 [檔案] 功能表上按一下 [新增],然後按一下 [專案]。
  2. Visual C# 專案,選取 ASP.NET Web 服務。輸入或貼 http://localhost/DocumentManagementService 上的 位置,然後按一下 [確定]。預設情況下,Service1.asmx 會建立,且在 [設計] 檢視中顯示。
  3. 按一下 [檢視] 功能表以顯示 Service1.asmx 的 [程式碼] 檢視的 程式碼
  4. 將下列 WebMethods 程式碼加入至 Service1 類別
    [WebMethod]public bool SaveDocument( Byte[] docbinaryarray, string docname){	string strdocPath;	strdocPath = "C:\\DocumentDirectory\\" + docname;	FileStream objfilestream =new FileStream(strdocPath,FileMode.Create,FileAccess.ReadWrite);	objfilestream.Write(docbinaryarray,0,docbinaryarray.Length);	objfilestream.Close();	return true;}[WebMethod]public int GetDocumentLen(string DocumentName){	string strdocPath;	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);	int len = (int)objfilestream.Length;				objfilestream.Close();	return len;} [WebMethod]public Byte[] GetDocument(string DocumentName){	string strdocPath;	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);	int len = (int)objfilestream.Length;				Byte[] documentcontents  = new Byte[len];	objfilestream.Read(documentcontents,0,len);	objfilestream.Close();	return documentcontents;	} 					

    注意:程式碼會將文件儲存至 <root>: \\DocumentDirectory\\ 伺服器上的目錄路徑。變更這資料夾,在您的 Web 伺服器上您想要儲存文件。

  5. 將下列命名空間加入至 [Service1.asmx 開頭:
    using System.IO;
  6. 測試 Web 服務:
    1. 在 [偵錯] 功能表上按一下 [開始] 以啟動 Web 服務]。這會啟動,Web 瀏覽器,並出現服務描述] 的 [說明] 頁面。
    2. 請確定 SaveDocumentGetDocumentGetDocumentLen 方法顯示。
    3. 關閉 Web 瀏覽器視窗,以停止偵錯。
back to the top

建置 Web 服務用戶端

  1. 在 Visual Studio.NET 中的 [檔案] 功能表上按一下 [加入專案,然後按一下 [新增專案]。
  2. Visual C# 專案] 清單中選取 Windows 應用程式,再按 [確定]。依照預設值,會建立 Form1。
  3. 將 Web 參考至 Web] 服務加入,如下所示:
    1. 在 [方案總管中,在用戶端專案項目上按一下滑鼠右鍵。快顯 功能表上,然後選取 [加入 Web 參考]。
    2. 在 [加入 Web 參考] 對話方塊輸入 [Web] 服務的 URL,Web 服務描述語言 (WSDL) 檔案,並按下 ENTER。

      注意:WSDL 檔案的預設位置是 http://localhost/DocumentManagementService/Service1.asmx?WSDL。
    3. 在 [加入 Web 參考] 對話方塊按一下 [加入參考]。
  4. 將兩個按鈕加入 Form1。將 button1 的 Text 屬性設定至 存放區伺服器上的文件。將 button2 的 Text 屬性設定為 從伺服器擷取文件
  5. 連按兩下 button1button2 來建立預設按一下這些按鈕的事件處理常式。
  6. 使用下列程式碼取代處理常式:
    string sFile = "<file path>";private void button1_Click(object sender, System.EventArgs e){	FileStream objfilestream = new FileStream(sFile,FileMode.Open,FileAccess.Read);	int len = (int)objfilestream.Length;	Byte[] mybytearray = new Byte[len];	objfilestream.Read(mybytearray,0,len);	localhost.Service1 myservice = new localhost.Service1();	myservice.SaveDocument(mybytearray,sFile.Remove(0,sFile.LastIndexOf("\\")+1));	objfilestream.Close();}private void button2_Click(object sender, System.EventArgs e){	MemoryStream objstreaminput = new MemoryStream();	FileStream objfilestream = new FileStream(sFile.Insert(sFile.LastIndexOf("."),"2"), FileMode.Create,FileAccess.ReadWrite);							localhost.Service1 myservice = new localhost.Service1();	int len = (int)myservice.GetDocumentLen(sFile.Remove(0,sFile.LastIndexOf("\\")+1)); 	Byte[] mybytearray = new Byte[len];	mybytearray = myservice.GetDocument(sFile.Remove(0,sFile.LastIndexOf("\\")+1));	objfilestream.Write(mybytearray,0,len);	objfilestream.Close();}					
    注意:sFile 變數必須包含上載至伺服器的文件在本機檔案路徑。 當下載文件放在同一個資料夾中,而值為 2 會附加至檔案名稱。

  7. 在檔案開頭加入下列命名空間:
    using System.IO;
  8. 在 [方案總管中,在用戶端專案項目上按一下滑鼠右鍵。然後選取 [設定為啟始專案 快顯 功能表上
back to the top

試試看

  1. 在 [偵錯] 功能表上按一下 [開始]。 Form1 會出現。
  2. 按一下 [標示為 「 伺服器 」 上的儲存庫文件] 按鈕。 這會呼叫 SaveDocument Web 方法。這個 Web 方法將本機文件儲存在 <root>: 伺服器上的 [\DocumentDirectory\] 資料夾。 您傳送文件之後請確認檔案存在於目的資料夾中。
  3. 按一下 [標示為 從伺服器擷取文件] 按鈕。 這會呼叫 GetDocument Web 方法。這個 Web 方法會擷取文件從 <root>: 伺服器上的 [\DocumentDirectory\] 資料夾。 本機程式碼中所指定的磁碟機上儲存文件。
back to the top
参考
如需詳細資訊請參閱 「 Microsoft Visual Studio.NET 說明文件。

back to the top
ASP.NET 文件的 Web 服務二進位

警告:本文為自動翻譯

內容

文章識別碼:318425 - 最後檢閱時間:12/15/2003 14:57:43 - 修訂: 4.2

Microsoft ASP.NET 1.0, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster KB318425 KbMtzh
意見反應