zoukankan      html  css  js  c++  java
  • C#批量上传图片到服务器

    客户端代码:

     /// <summary>
            /// 批量上传图片
            /// </summary>
            /// <param name="srcurl">服务器路径</param>
            /// <param name="imagesPath">图片文件夹路径</param>
            /// <param name="files">图片名称</param>
            public void UpLoadFile(string srcurl, string imagesPath, List<string> files)
            {
                int count = 1;
                foreach (string imageName in files)
                {
                    string name = imageName;
                    string url = null;
                    //+  加号特殊处理
                    if (name.Contains("+"))
                    {
                        url = srcurl + "name=" + name.Replace("+", "%2B");
                    }
                    else
                    {
                        url = srcurl + "name=" + name;
                    }
    
                    FileStream fs = new FileStream(imagesPath + name, FileMode.Open);
                    byte[] data = new byte[fs.Length];
                    fs.Read(data, 0, data.Length);
                    fs.Close();
    
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.ContentType = "image/jpeg";
                    request.Method = "POST";
                    Encoding encoding = Encoding.UTF8;
                    request.ContentLength = data.Length;
                    Stream requestStream = request.GetRequestStream();
                    requestStream.Write(data, 0, data.Length);
                    requestStream.Close();
    
    
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    StreamReader streamReader = new StreamReader(response.GetResponseStream(), encoding);
                    string retString = streamReader.ReadToEnd();
                    streamReader.Close();
    
                    Console.WriteLine((count++) + "/" + files.Count);
    
                }
            }

    服务器端代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Net;
    using System.Text;
    using System.IO;
    
    public partial class upload : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {
            string fPath = Server.MapPath("服务器端图片存储的虚拟目录名称");//得到虚拟目录的真实路径//检查存储目录
            if (!Directory.Exists(fPath))
            {
                Directory.CreateDirectory(fPath);
            }
            string name = Request.QueryString["name"];//得到文件名
            HttpUtility.UrlEncode(name, Encoding.GetEncoding("UTF-8"));
            
            if (name != null)
            {
                if (!File.Exists(fPath + name))
                {
                    System.IO.Stream stream = Request.InputStream;
                    byte[] buffer = new byte[stream.Length];
                    FileStream fs = null;
                    try
                    {
                        fs = new FileStream(fPath + name, FileMode.Create);
                        while ((stream.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            fs.Write(buffer, 0, buffer.Length);
                        }
                    }
                    catch (IOException ioe)
                    {
                        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));
        }
    }
  • 相关阅读:
    doc文档生成带目录的pdf文件方法
    Android uses-permission 权限大全
    AndroidManifest.xml配置文件详解 (转)
    解决导入Android例子时“Unable to resolve target 'android-x' ”的错误
    Eclipse导入Android项目的方法(转)
    数据结构与算法问题 AVL二叉平衡树
    TinyXml 与 Rapidxml效率对照
    HDU 1176-免费馅饼(DP_逆推)
    【OpenCV新手教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
    交换机基础
  • 原文地址:https://www.cnblogs.com/afluy/p/3582765.html
Copyright © 2011-2022 走看看