ASP.NET中利用WebClient上傳圖片到遠(yuǎn)程服務(wù)的方法
一、客戶端
1.頁(yè)面
<form id="Form1" method="post" runat="server" enctype="multipart/form-data"> <input id="MyFile" type="file" runat="server" /> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="上載文件" OnClick="Button1_Click"></asp:Button> </form>
2.后臺(tái)
System.Web.HttpFileCollection oFiles = System.Web.HttpContext.Current.Request.Files;
string FilePath = oFiles[0].FileName;
string FileName = FilePath.Substring(FilePath.LastIndexOf("\\") + 1);
byte[] b = new byte[oFiles[0].ContentLength];
System.IO.Stream fs = (System.IO.Stream)oFiles[0].InputStream;
fs.Read(b, 0, oFiles[0].ContentLength);
string postData = "data=" + HttpUtility.UrlEncode(Convert.ToBase64String(b));
var webclient = new WebClient();
webclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
//byte[] buffer = webclient.UploadData("http://localhost/datapush/DataPush.ashx", "POST", byteArray);//ashx
byte[] buffer = webclient.UploadData("http://localhost/datapush/WebServiceDataPush.asmx/DataPush", "POST", byteArray);//asmx
var msg = Encoding.UTF8.GetString(buffer);
Response.Write(msg);
二、服務(wù)端
string msg = "";
byte[] filedata = Convert.FromBase64String(context.Request["data"]);
if (filedata.Length == 0)
{
msg= "{\"code\":\"上傳的是空文件\"}";
}
if (filedata.Length > 1048576)
{
msg = "{\"code\":\"圖片大小不能超過(guò)1M\"}";
}
string fileextension = filedata[0].ToString() + filedata[1].ToString();
if (fileextension == "7173")
{
fileextension = "gif";
}
else if (fileextension == "255216")
{
fileextension = "jpg";
}
else if (fileextension == "13780")
{
fileextension = "png";
}
else if (fileextension == "6677")
{
fileextension = "bmp";
}
else if (fileextension == "7373")
{
fileextension = "tif";
}
else
{
msg = "{\"code\":\"上傳的文件不是圖片\"}";
}
try
{
//保存圖片
string filename = Guid.NewGuid().ToString("D") + "." + fileextension;
System.IO.MemoryStream ms = new System.IO.MemoryStream(filedata);
System.IO.FileStream fs = new System.IO.FileStream(context.Server.MapPath("~/") + "/采集圖片/" + filename, System.IO.FileMode.Create);
ms.WriteTo(fs);
ms.Close();
fs.Close();
fs = null;
ms = null;
msg = "{\"code\":\"上傳圖片成功\"}";
}
catch (Exception exe)
{
msg = "{\"code\":\"" + exe.Message + "\"}";
}
以上所述是小編給大家介紹的ASP.NET中利用WebClient上傳圖片到遠(yuǎn)程服務(wù)的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
ASP.NET的事件模型(很適合學(xué)習(xí)的文章)
當(dāng)我們新建一個(gè)ASP.NET的應(yīng)用程序時(shí),會(huì)默認(rèn)生成一個(gè)Default.aspx和Default.aspx.cs頁(yè)面2012-10-10
ASP.NET?Core使用EF為關(guān)系數(shù)據(jù)庫(kù)建模
這篇文章介紹了ASP.NET?Core使用EF為關(guān)系數(shù)據(jù)庫(kù)建模的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
ADO.NET 讀取EXCEL的實(shí)現(xiàn)代碼((c#))
經(jīng)常需要在數(shù)據(jù)庫(kù)與Execl之間互導(dǎo)數(shù)據(jù)。net時(shí)代,ADO.NET可以使用使用Microsoft.Jet.OleDb訪問(wèn)訪問(wèn)Excel,網(wǎng)上已經(jīng)有很多類似的資源,最典型也是最簡(jiǎn)單的可能如下:(asp.net環(huán)境)2012-12-12
ASP.NET實(shí)現(xiàn)讀取Excel內(nèi)容并在Web上顯示
這篇文章主要介紹了ASP.NET實(shí)現(xiàn)讀取Excel內(nèi)容并在Web上顯示,很實(shí)用的一個(gè)技巧,需要的朋友可以參考下2014-08-08
asp.net利用后臺(tái)實(shí)現(xiàn)直接生成html分頁(yè)的方法
這篇文章主要介紹了asp.net利用后臺(tái)實(shí)現(xiàn)直接生成html分頁(yè)的方法,比較簡(jiǎn)潔實(shí)用,需要的朋友可以參考下2014-08-08
Entity Framework Core延遲加載(懶加載)用法
這篇文章介紹了Entity Framework Core延遲加載(懶加載)的使用方式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
.NET使用NPOI實(shí)現(xiàn)讀取帶有圖片的excel數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了.NET如何使用NPOI實(shí)現(xiàn)讀取帶有圖片的excel數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Asp.net TreeView來(lái)構(gòu)建用戶選擇輸入的方法 推薦
選擇優(yōu)于輸入,這是一般人的共識(shí),面對(duì)繁多的數(shù)據(jù),提供良好的選擇界面,一方面增強(qiáng)用戶的界面體驗(yàn),一方面也提高了數(shù)據(jù)的準(zhǔn)確性,更節(jié)省了用戶的寶貴時(shí)間。2009-12-12

