有時候我們通常需要把上傳的圖檔或其他檔案放在其他伺服器上,以便和網站伺服器分開,這時候ASP.NET的WebService就派上大用場 了。我們可以在檔案伺服器上運作一個WebService,提供上傳和下載下傳檔案的方法,然後在網站伺服器上的網站中引用這個WebService,調用上 傳或下載下傳的方法,實作對遠端伺服器上的檔案上傳和下載下傳的功能。以下操作在VS2005環境中完成。
先建立一個 WebService項目UpDownFile,裡面自動建了一個叫Service1的asmx和cs檔案,看不順眼這個名字的就把它重命名吧,我就把它 重命名為了UpDownFile.asmx,把裡面的class也重命名為UpDownFile了,這樣看起來順眼多了
利用WebService實作遠端伺服器檔案的上傳和下載下傳 。
UpDownFile.asmx.cs的代碼如下:
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Data;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Collections;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web.Services;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web.Services.Protocols;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.ComponentModel;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.IO;
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 namespace UpDownFile
利用WebService實作遠端伺服器檔案的上傳和下載下傳 {
利用WebService實作遠端伺服器檔案的上傳和下載下傳 /// <summary>
利用WebService實作遠端伺服器檔案的上傳和下載下傳 /// UpDownFile 的摘要說明
利用WebService實作遠端伺服器檔案的上傳和下載下傳 /// </summary>
利用WebService實作遠端伺服器檔案的上傳和下載下傳 [WebService(Namespace = "http://tempuri.org/")]
利用WebService實作遠端伺服器檔案的上傳和下載下傳 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
利用WebService實作遠端伺服器檔案的上傳和下載下傳 [ToolboxItem(false)]
利用WebService實作遠端伺服器檔案的上傳和下載下傳 public class UpDownFile : System.Web.Services.WebService
利用WebService實作遠端伺服器檔案的上傳和下載下傳 {
利用WebService實作遠端伺服器檔案的上傳和下載下傳 //将Stream流轉換為byte數組的方法。
利用WebService實作遠端伺服器檔案的上傳和下載下傳 //PS:原本想把這個方法也當做WebMethod的,因為用戶端在上傳檔案時也要調用該方法,後來發現Stream類型的不能通過WebService傳輸。。。:(
利用WebService實作遠端伺服器檔案的上傳和下載下傳 public byte[] ConvertStreamToByteBuffer(Stream s)
利用WebService實作遠端伺服器檔案的上傳和下載下傳 {
利用WebService實作遠端伺服器檔案的上傳和下載下傳 MemoryStream ms = new MemoryStream();
利用WebService實作遠端伺服器檔案的上傳和下載下傳 int b;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 while ((b = s.ReadByte()) != -1)
利用WebService實作遠端伺服器檔案的上傳和下載下傳 {
利用WebService實作遠端伺服器檔案的上傳和下載下傳 ms.WriteByte((byte)b);
利用WebService實作遠端伺服器檔案的上傳和下載下傳 }
利用WebService實作遠端伺服器檔案的上傳和下載下傳 return ms.ToArray();
利用WebService實作遠端伺服器檔案的上傳和下載下傳 }
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 //上傳檔案至WebService所在伺服器的方法,這裡為了操作方法,檔案都儲存在UpDownFile服務所在檔案夾下的File目錄中
利用WebService實作遠端伺服器檔案的上傳和下載下傳 [WebMethod]
利用WebService實作遠端伺服器檔案的上傳和下載下傳 public bool Up(byte[] data, string filename)
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 try
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 FileStream fs = File.Create(Server.MapPath("File/") + filename);
利用WebService實作遠端伺服器檔案的上傳和下載下傳 fs.Write(data, 0, data.Length);
利用WebService實作遠端伺服器檔案的上傳和下載下傳 fs.Close();
利用WebService實作遠端伺服器檔案的上傳和下載下傳 return true;
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 catch
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 return false;
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 //下載下傳WebService所在伺服器上的檔案的方法
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 public byte[] Down(string filename)
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 string filepath = Server.MapPath("File/") + filename;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 if (File.Exists(filepath))
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 try
利用WebService實作遠端伺服器檔案的上傳和下載下傳 {
利用WebService實作遠端伺服器檔案的上傳和下載下傳 FileStream s = File.OpenRead(filepath);
利用WebService實作遠端伺服器檔案的上傳和下載下傳 return ConvertStreamToByteBuffer(s);
利用WebService實作遠端伺服器檔案的上傳和下載下傳 }
利用WebService實作遠端伺服器檔案的上傳和下載下傳 catch
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 return new byte[0];
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 else
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 return new byte[0];
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 }
利用WebService實作遠端伺服器檔案的上傳和下載下傳 }
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 接下來就是在用戶端網站中調用了,先添加Web引用,幹脆引用名也用UpDownFile算了
利用WebService實作遠端伺服器檔案的上傳和下載下傳 ,首先是DownFile.aspx
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Configuration;
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web.Security;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web.UI;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web.UI.WebControls;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web.UI.WebControls.WebParts;
利用WebService實作遠端伺服器檔案的上傳和下載下傳 using System.Web.UI.HtmlControls;
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 namespace HelloWorld
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 public partial class DownFile : System.Web.UI.Page
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 protected void Page_Load(object sender, EventArgs e)
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 UpDownFile.UpDownFile down = new UpDownFile.UpDownFile();
利用WebService實作遠端伺服器檔案的上傳和下載下傳 byte[] file = down.Down(Request.QueryString["filename"].ToString());
利用WebService實作遠端伺服器檔案的上傳和下載下傳 Response.BinaryWrite(file);
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 接下來是上傳的示範檔案UpFile.aspx
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 public partial class UpFile : System.Web.UI.Page
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 protected void Button1_Click(object sender, EventArgs e)
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 //儲存到遠端File檔案夾
利用WebService實作遠端伺服器檔案的上傳和下載下傳 //FileUpload1是aspx頁面的一個FileUpload控件
利用WebService實作遠端伺服器檔案的上傳和下載下傳 UpDownFile.UpDownFile up = new UpDownFile.UpDownFile();
利用WebService實作遠端伺服器檔案的上傳和下載下傳 up.Up(ConvertStreamToByteBuffer(FileUpload1.PostedFile.InputStream), FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf("\\") + 1));
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 protected byte[] ConvertStreamToByteBuffer(Stream s)
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳
利用WebService實作遠端伺服器檔案的上傳和下載下傳 其實主要是UpDownFile.asmx.cs這個Web服務檔案,用戶端怎麼調用就随便了。大家看到了,Up和Down方法中傳輸的都是byte[]數組,因為WebService不支援Stream傳輸,那就把檔案轉換為二進制數組來傳遞。
此 外也可以制作利用WebService遠端存儲資料庫的東西,因為有時候遠端伺服器的1433端口不能開放,隻能開放80,那WebService就派上 用場了。要注意的是,DataTable不能通過WebService傳輸,隻能附在DataSet上來傳輸,此外很多類型也不可以通過 WebService傳,具體可以通過其傳輸的類型請參考書籍
利用WebService實作遠端伺服器檔案的上傳和下載下傳 。我想遠端上下傳檔案和遠端存取資料庫是WebService最主要的應用吧?
本文轉自左正部落格園部落格,原文連結:http://www.cnblogs.com/soundcode/archive/2013/04/26/3045090.html,如需轉載請自行聯系原作者