c#批量上传图片到服务器示例分享
客户端代码:
///<summary>
///批量上传图片
///</summary>
///<paramname="srcurl">服务器路径</param>
///<paramname="imagesPath">图片文件夹路径</param>
///<paramname="files">图片名称</param>
publicvoidUpLoadFile(stringsrcurl,stringimagesPath,List<string>files)
{
intcount=1;
foreach(stringimageNameinfiles)
{
stringname=imageName;
stringurl=null;
//+ 加号特殊处理
if(name.Contains("+"))
{
url=srcurl+"name="+name.Replace("+","%2B");
}
else
{
url=srcurl+"name="+name;
}
FileStreamfs=newFileStream(imagesPath+name,FileMode.Open);
byte[]data=newbyte[fs.Length];
fs.Read(data,0,data.Length);
fs.Close();
HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(url);
request.ContentType="image/jpeg";
request.Method="POST";
Encodingencoding=Encoding.UTF8;
request.ContentLength=data.Length;
StreamrequestStream=request.GetRequestStream();
requestStream.Write(data,0,data.Length);
requestStream.Close();
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();
StreamReaderstreamReader=newStreamReader(response.GetResponseStream(),encoding);
stringretString=streamReader.ReadToEnd();
streamReader.Close();
Console.WriteLine((count++)+"/"+files.Count);
}
}
服务器端代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Net;
usingSystem.Text;
usingSystem.IO;
publicpartialclassupload:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
stringfPath=Server.MapPath("服务器端图片存储的虚拟目录名称");//得到虚拟目录的真实路径//检查存储目录
if(!Directory.Exists(fPath))
{
Directory.CreateDirectory(fPath);
}
stringname=Request.QueryString["name"];//得到文件名
HttpUtility.UrlEncode(name,Encoding.GetEncoding("UTF-8"));
if(name!=null)
{
if(!File.Exists(fPath+name))
{
System.IO.Streamstream=Request.InputStream;
byte[]buffer=newbyte[stream.Length];
FileStreamfs=null;
try
{
fs=newFileStream(fPath+name,FileMode.Create);
while((stream.Read(buffer,0,buffer.Length))>0)
{
fs.Write(buffer,0,buffer.Length);
}
}
catch(IOExceptionioe)
{
Response.Write(ioe);
}
finally
{
if(fs!=null)
{
fs.Close();
}
stream.Close();
}
Response.Write(name+"<br>");
Response.Write(File.Exists(fPath+name)+"<br>");
}
}
Response.Write("上传完毕"+Directory.Exists(fPath)+Path.GetFullPath(fPath));
}
}
相关文章
- c# mysql executenonquery_C#与数据库访问技术之ExecuteNonQuery方法
- 【地铁上的Redis与C#】数据类型(七)--List类型
- .NET 生态现状:超一半 .NET 开发者使用 C# 8、.NET Framework 使用量减少
- C#WinForm窗口最小化到系统托盘
- asp.net(C#)Access数据操作类
- c#循环中产生伪随机数
- asp.net(c#)下各种进制间的轻松转换(2进制、8进制、10进制、16进制)
- 将ocx文件转换成C#程序引用的DLL文件的办法
- C#撒列实现关键字过滤的实例
- 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
- C#启动和停止windows服务的实例代码
- C#线程池用法详细介绍
- c#开发word批量转pdf源码分享
- C#批量更新sql实例
- C#判断页面中的多个文本框输入值是否有重复的实现方法
- C#中Html.RenderPartial与Html.RenderAction的区别分析