zoukankan      html  css  js  c++  java
  • 以字节流上传文件

    public string SaveFile(byte[] binData, string filePath, string fileName, int type, string fileType)
           {

               ///定义并实例化一个内存流,以存放提交上来的字节数组。
               MemoryStream m = new MemoryStream(binData);
               FileStream fileStream = null;
               try
               {
                   string savePath = System.Configuration.ConfigurationSettings.AppSettings["DcFilePath"];

                   //不是绝对路径 
                   if (savePath.IndexOf(":\\") < 0) savePath = Server.MapPath(savePath);

                   //没有反斜杠
                   if (!savePath.EndsWith("\\")) savePath += "\\";

                   //目录
                   savePath += filePath;

                   //没有文件夹,创建文件夹

                   if (!Directory.Exists(savePath))
                   {
                       Directory.CreateDirectory(savePath);
                   }

                   if (type == 0)
                   {
                       fileName = "\\" + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                   }
                   if (!File.Exists(savePath + fileName + fileType))
                   {
                       fileName = "\\" + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                   }
                   fileName = fileName + fileType;
                   //写文件
                   fileStream = new FileStream(savePath + fileName, FileMode.Create);
                   m.WriteTo(fileStream);
                   StreamWriter sw=new StreamWriter(savePath+".txt");
                   sw.WriteLine(binData.Length.ToString());
                   sw.Close();
                    return "filePath.Replace("\\", "/") + fileName.Replace("\\", "/");
               }
               catch
               {
                   return "上传文件出错|1";
               }
               finally
               {
                   m.Close();
                   fileStream.Close();
               }

           }

     

    有时候下面的函数会报错,也不知道什么原因.   还是用上传控件自带的转换.

    #region 将文件转化成2进制流 ConvertFileStreamToByteBuffer
      /// </summary> 
      /// <param name="filename"></param> 
      /// <returns></returns> 
      public byte[] getBinaryFile(string filename)
      {
          if (File.Exists(filename))
          {
              FileStream s = null;
              try
              {
                  //打开现有文件以进行读取。 
                  s = File.OpenRead(filename);
                  return this.ConvertStreamToByteBuffer(s);
              }
              catch
              {
                  return new byte[0];
              }
              finally
              {
                  s.Close();
              }
          }
          else
          {
              return new byte[0];
          }
      }
      #endregion

      #region 将流文件转化成2进制字节数组Convert FileStream Into Byte
      /// </summary> 
      /// <param name="theStream"></param> 
      /// <returns></returns> 
      public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
      {
          int b1;
          MemoryStream tempStream = new System.IO.MemoryStream();

          try
          {
              while ((b1 = theStream.ReadByte()) != -1)
              {
                  tempStream.WriteByte(((byte)b1));
              }
              return tempStream.ToArray();
          }
          catch
          {
              return new byte[0];
          }
          finally
          {
              tempStream.Close();
          }
      }
      #endregion

  • 相关阅读:
    输出菱形
    for语句输出三角形
    阶乘倒数的和
    变量赋值判断奇偶
    928作业
    各种主流数据库的比较(所以说我觉得Oracle这个keng?入的不错?)
    Oracle创建表
    (转载)全球唯一标识GUID
    (转载)Java基础知识总结
    两天以来对plsqldev操作的记忆
  • 原文地址:https://www.cnblogs.com/goooto/p/2255956.html
Copyright © 2011-2022 走看看