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上传图片到远程服务的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!