zoukankan      html  css  js  c++  java
  • c#批量上传图片到服务器示例分享

     这篇文章主要介绍了c#批量上传图片到服务器示例,服务器端需要设置图片存储的虚拟目录,需要的朋友可以参考下

    复制代码
     1 /// <summary>
     2 /// 批量上传图片
     3 /// </summary>
     4 /// <param name="srcurl">服务器路径</param>
     5 /// <param name="imagesPath">图片文件夹路径</param>
     6 /// <param name="files">图片名称</param>
     7 public void UpLoadFile(string srcurl, string imagesPath, List<string> files)
     8 {
     9     int count = 1;
    10     foreach (string imageName in files)
    11     {
    12         string name = imageName;
    13         string url = null;
    14         //+  加号特殊处理
    15         if (name.Contains("+"))
    16         {
    17             url = srcurl + "name=" + name.Replace("+", "%2B");
    18         }
    19         else
    20         {
    21             url = srcurl + "name=" + name;
    22         }
    23         FileStream fs = new FileStream(imagesPath + name, FileMode.Open);
    24         byte[] data = new byte[fs.Length];
    25         fs.Read(data, 0, data.Length);
    26         fs.Close();
    27         HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    28         request.ContentType = "image/jpeg";
    29         request.Method = "POST";
    30         Encoding encoding = Encoding.UTF8;
    31         request.ContentLength = data.Length;
    32         Stream requestStream = request.GetRequestStream();
    33         requestStream.Write(data, 0, data.Length);
    34         requestStream.Close();
    35 
    36         HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    37         StreamReader streamReader = new StreamReader(response.GetResponseStream(), encoding);
    38         string retString = streamReader.ReadToEnd();
    39         streamReader.Close();
    40         Console.WriteLine((count++) + "/" + files.Count);
    41     }
    42 }
    复制代码

    服务器端代码:

    复制代码
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.UI;
     6 using System.Web.UI.WebControls;
     7 using System.Net;
     8 using System.Text;
     9 using System.IO;
    10 public partial class upload : System.Web.UI.Page
    11 {
    12 
    13     protected void Page_Load(object sender, EventArgs e)
    14     {
    15         string fPath = Server.MapPath("服务器端图片存储的虚拟目录名称");//得到虚拟目录的真实路径//检查存储目录
    16         if (!Directory.Exists(fPath))
    17         {
    18             Directory.CreateDirectory(fPath);
    19         }
    20         string name = Request.QueryString["name"];//得到文件名
    21         HttpUtility.UrlEncode(name, Encoding.GetEncoding("UTF-8"));
    22         if (name != null)
    23         {
    24             if (!File.Exists(fPath + name))
    25             {
    26                 System.IO.Stream stream = Request.InputStream;
    27                 byte[] buffer = new byte[stream.Length];
    28                 FileStream fs = null;
    29                 try
    30                 {
    31                     fs = new FileStream(fPath + name, FileMode.Create);
    32                     while ((stream.Read(buffer, 0, buffer.Length)) > 0)
    33                     {
    34                         fs.Write(buffer, 0, buffer.Length);
    35                     }
    36                 }
    37                 catch (IOException ioe)
    38                 {
    39                     Response.Write(ioe);
    40                 }
    41                 finally
    42                 {
    43                     if (fs != null)
    44                     {
    45                         fs.Close();
    46                     }
    47                     stream.Close();
    48                 }
    49                 Response.Write(name + "<br>");
    50                 Response.Write(File.Exists(fPath + name) + "<br>");
    51             }
    52          }
    53         Response.Write("上传完毕" + Directory.Exists(fPath) + Path.GetFullPath(fPath));
    54     }
    55 }
    复制代码
  • 相关阅读:
    Git 学习
    js模块化编程之彻底弄懂CommonJS和AMD/CMD!
    浅析JS中的模块规范(CommonJS,AMD,CMD)
    js实现获取两个日期之间所有日期最简单的方法
    jQuery 中 attr() 和 prop() 方法的区别
    判断某个元素是否在数组的对象中存在
    获取两个数组中不同的元素
    Web前端的缓存机制(那些以代价换来的效率)
    前端技术栈(概览)
    使用layer 弹出对话框 子父页面相互参数传递 父页面获取子页面参数实例
  • 原文地址:https://www.cnblogs.com/dxqNet/p/7088252.html
Copyright © 2011-2022 走看看