ASP.NET中利用WebClient上传图片到远程服务的方法
一、客户端
1.页面
<formid="Form1"method="post"runat="server"enctype="multipart/form-data"> <inputid="MyFile"type="file"runat="server"/> <br/> <br/> <asp:ButtonID="Button1"runat="server"Text="上载文件"OnClick="Button1_Click"></asp:Button> </form>
2.后台
System.Web.HttpFileCollectionoFiles=System.Web.HttpContext.Current.Request.Files; stringFilePath=oFiles[0].FileName; stringFileName=FilePath.Substring(FilePath.LastIndexOf("\\")+1); byte[]b=newbyte[oFiles[0].ContentLength]; System.IO.Streamfs=(System.IO.Stream)oFiles[0].InputStream; fs.Read(b,0,oFiles[0].ContentLength); stringpostData="data="+HttpUtility.UrlEncode(Convert.ToBase64String(b)); varwebclient=newWebClient(); 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 varmsg=Encoding.UTF8.GetString(buffer); Response.Write(msg);
二、服务端
stringmsg=""; byte[]filedata=Convert.FromBase64String(context.Request["data"]); if(filedata.Length==0) { msg="{\"code\":\"上传的是空文件\"}"; } if(filedata.Length>1048576) { msg="{\"code\":\"图片大小不能超过1M\"}"; } stringfileextension=filedata[0].ToString()+filedata[1].ToString(); if(fileextension=="7173") { fileextension="gif"; } elseif(fileextension=="255216") { fileextension="jpg"; } elseif(fileextension=="13780") { fileextension="png"; } elseif(fileextension=="6677") { fileextension="bmp"; } elseif(fileextension=="7373") { fileextension="tif"; } else { msg="{\"code\":\"上传的文件不是图片\"}"; } try { //保存图片 stringfilename=Guid.NewGuid().ToString("D")+"."+fileextension; System.IO.MemoryStreamms=newSystem.IO.MemoryStream(filedata); System.IO.FileStreamfs=newSystem.IO.FileStream(context.Server.MapPath("~/")+"/采集图片/"+filename,System.IO.FileMode.Create); ms.WriteTo(fs); ms.Close(); fs.Close(); fs=null; ms=null; msg="{\"code\":\"上传图片成功\"}"; } catch(Exceptionexe) { msg="{\"code\":\""+exe.Message+"\"}"; }
以上所述是小编给大家介绍的ASP.NET中利用WebClient上传图片到远程服务的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!