在实际的网站开发中,往往会将图片服务器和WEB服务器分开,怎样将图片保存在图片服务器就是以个问题。现在利用WebClinet类,可以轻松解决这个问题。
如,WEB服务器的域名为http://www.a.com/
我们在其下面建立一个页面upload.aspx代码为
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
upload.aspx.cs的代码为
protected void Button1_Click(object sender, EventArgs e)
{
WebClient Client = new WebClient();
byte[] bytes = Client.UploadFile("http://www.b.com/upload.aspx", FileUpload1.PostedFile.FileName);
Response.Write(System.Text.Encoding.ASCII.GetString(bytes));
}
在图片服务器http://www.b.com/下同样建立一个upload.aspx,代码为
protected void Page_Load(object sender, EventArgs e)
{
foreach (string f in Request.Files.AllKeys)
{
HttpPostedFile file = Request.Files[f];
string FileName = System.Guid.NewGuid().ToString() + System.IO.Path.GetExtension(file.FileName);
file.SaveAs("E://upload//" + FileName);
Response.Write(FileName);
}
}
运行http://www.a.com/upload.aspx 上传图片,就能够保存图片到图片服务器相应位置。
如需传递参数path,可直接在 UploadFile方法中把地址改为http://www.b.com/upload.aspx?path=path
在http://www.b.com/upload.aspx直接接受即可。