• 文件以二进制流保存到DB及Download(转)


    把音频文件上传到数据库,然后读取出来播放:
    表名: myfile; 表字段: id(int), Content(image),Type(varchar(50))

    using   System;
     using   System.Data;
     using   System.Configuration;
     using   System.Collections;
     using   System.Web;
     using   System.Web.Security;
     using   System.Web.UI;
     using   System.Web.UI.WebControls;
     using   System.Web.UI.WebControls.WebParts;
     using   System.Web.UI.HtmlControls;
     using   System.Data.SqlClient;
     using   System.IO;
     
    public   partial   class   Image   :   System.Web.UI.Page
     {
             protected   void   Page_Load(object   sender,   EventArgs   e)
             {
             }
             protected   void   Button1_Click(object   sender,   EventArgs   e)
             {
                     Stream   fileDataStream   =   FileUpload1.PostedFile.InputStream;
                     HttpPostedFile   file   =   FileUpload1.PostedFile;
                     int   fileLength   =   FileUpload1.PostedFile.ContentLength;
                     byte[]   fileData   =   new   byte[fileLength];
     
    //把文件流填充到数组  
                     fileDataStream.Read(fileData,   0,   fileLength);                 
     
    string   fileType   =   Path.GetExtension(FileUpload1.PostedFile.FileName);  //获取文件扩展名
                     SqlConnection   cn   =   new   SqlConnection(); //连接数据库
                     cn.Open();
                     SqlCommand   cmd   =   new   SqlCommand( "insert   myfile(Content,Type)   values(@Content,@Type) ",   cn);
                     cmd.Parameters.AddWithValue( "@Content ",   fileData);
                     cmd.Parameters.AddWithValue( "@Type ",   fileType);
                     cmd.ExecuteNonQuery();
                     cn.Close();
             }
     } 
     
    using   System;
     using   System.Data;
     using   System.Configuration;
     using   System.Collections;
     using   System.Web;
     using   System.Web.Security;
     using   System.Web.UI;
     using   System.Web.UI.WebControls;
     using   System.Web.UI.WebControls.WebParts;
     using   System.Web.UI.HtmlControls;
     
    using   System.Data.SqlClient;
     using   System.IO;
     
    public   partial   class   Image2   :   System.Web.UI.Page
     {
             protected   void   Page_Load(object   sender,   EventArgs   e)
             {
                     SqlConnection   cn   =   new   SqlConnection();//数据库链接
                     cn.Open();
                     SqlDataAdapter   da2   =   new   SqlDataAdapter( "select   *   from   myfile   where   id=   24 ",   cn);//读出数据库中相应的数据
                     DataSet   ds2   =   new   DataSet();
                     da2.Fill(ds2);
                     byte[]   b2   =   (byte[])ds2.Tables[0].Rows[0][ "files "];
                     string   type   =   (string)ds2.Tables[0].Rows[0][ "type "];
                     Response.Clear();
                     string   Type   =   checktype(type);
                  Response.AddHeader("Content-Disposition","attachment; filename=”下载”+type);
                     Response.AddHeader( "Content-Length ",   b2.Length.ToString());
                     Response.ContentType   =   Type;
                     Response.BinaryWrite(b2);
                     Response.End();
     
                    string   FileName   =   ((LinkButton)sender).CommandArgument;
                     Response.Clear();
                     Response.ContentType   =   Type;
          Response.AddHeader("Content-Disposition","attachment;FileName= "   +   HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
                     Response.WriteFile(FileName);
                     Response.End();
             }
     
     
     
    //根据文件的扩展名来获取对应的“输出流的HTTP MIME“类型
             private   string   checktype(string   filename)
             {
                  string   ContentType;
                  switch(filename.Substring(filename.LastIndexOf(". ")).Trim().ToLower())
                     {
                             case   ".asf ":
                                     ContentType   =   "video/x-ms-asf ";
                                     break;
                             case   ".avi ":
                                     ContentType   =   "video/avi ";
                                     break;
                             case   ".doc ":
                                     ContentType   =   "application/msword ";   break;
                             case   ".zip ":
                                     ContentType   =   "application/zip ";   break;
                             case   ".xls ":
                                     ContentType   =  "application/vnd.ms-excel ";   break;
                             case   ".gif ":
                                     ContentType   =   "image/gif ";   break;
                             case   ".jpg ":
                                     ContentType   =   "image/jpeg ";   break;
                             case   "jpeg ":
                                     ContentType   =   "image/jpeg ";   break;
                             case   ".wav ":
                                     ContentType   =   "audio/wav ";   break;
                             case   ".mp3 ":
                                     ContentType   =   "audio/mpeg3 ";   break;
                             case   ".mpg ":
                                     ContentType   =   "video/mpeg ";   break;
                             case   ".mepg ":
                                     ContentType   =   "video/mpeg ";   break;
                             case   ".rtf ":
                                     ContentType   =   "application/rtf ";   break;
                             case   ".html ":
                                     ContentType   =   "text/html ";   break;
                             case   ".htm ":
                                     ContentType   =   "text/html ";   break;
                             case   ".txt ":
                                     ContentType   =   "text/plain ";   break;
                             default:
                                     ContentType   =   "application/octet-stream ";
                                     break;
                     }
                     return   ContentType;
             }
     } 
  • 相关阅读:
    我们的CPU遭到攻击[LOJ558]
    历史[ZJOI2018]
    字符串[LOJ6517]
    奥运公交[LOJ3255]
    BLO-Blockade[POI2008]
    压力[BJOI2013]
    Earthquake[USACO01OPEN]
    暴力写挂[CTSC2018]
    极简教程:数据结构与算法(二)
    DllRegisterServer的调用失败的问题解决方法
  • 原文地址:https://www.cnblogs.com/dennys/p/3587687.html
Copyright © 2020-2023  润新知