图片上传与存储

1、 

UpLoadPic.aspx.cs  
   
  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;  
   
  public   partial   class   UpLoadPic   :   System.Web.UI.Page  
  {  
   
   
          public   void   UpLoadPictrue()  
          {  
                  if   (inputFile.PostedFile.ContentLength   >   0)  
                  {  
                          if   (IsValidFileType(inputFile.PostedFile.FileName))  
                          {  
                                  System.Drawing.Image.GetThumbnailImageAbort   backb   =   null;  
                                  //大图  
                                  string   fullName   =   inputFile.PostedFile.FileName;  
                                  string   newName   =   System.DateTime.Now.ToString("yyyyMMddhhmmss")   +   fullName.Substring(fullName.LastIndexOf("."));  
                                  string   path   =   Server.MapPath("../PlayerPhotos");  
                                  inputFile.SaveAs(path   +   "/"   +   newName);  
                          }  
                          else  
                          {  
                                  Response.Write("<script>alert('出错了!上传文件格式不对!')</script>");  
                          }  
                  }  
                  else  
                  {  
                          Response.Write("<script>alert('出错了!上传文件不能为空!')</script>");  
                  }  
          }  
          private   string[]   AcceptedFileTypes   =   new   string[]   {   "jpg",   "jpeg",   "jpe",   "gif"   };  
          private   bool   IsValidFileType(string   FileName)  
          {  
                  string   ext   =   FileName.Substring(FileName.LastIndexOf(".")   +   1,   FileName.Length   -   FileName.LastIndexOf(".")   -   1);  
                  for   (int   i   =   0;   i   <   AcceptedFileTypes.Length;   i++)  
                  {  
                          if   (ext.ToLower()   ==   AcceptedFileTypes[i])  
                          {  
                                  return   true;  
                          }  
                  }  
                  return   false;  
          }  
   
  }  
   
   
   
  UPloadPic.aspx  
   
  <%@   Page   Language="C#"   AutoEventWireup="true"   CodeFile="UpLoadPic.aspx.cs"   Inherits="UpLoadPic"   %>  
   
  <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
   
  <html   xmlns="http://www.w3.org/1999/xhtml"   >  
  <head   runat="server">  
          <title>无标题页</title>  
  </head>  
  <body>  
          <form   id="form1"   runat="server">  
                  <asp:FileUpload   ID="inputFile"   runat="server"   /><div>  
           
          </div>  
                  <asp:Button   ID="Button1"   runat="server"   Text="上传"/>  
          </form>  
  </body>  
  </html>  

 

2、

c#+access的:  
  private   void   load()  
  {  
  OleDbConnection   conn=new   OleDbConnectio(Common.ComClass.ComClass.GetConnStr());  
  OleDbCommand   cmd=new   OleDbCommand("select   top   1   *   from   签名",conn);  
  OleDbDataReader   dr;  
   
  conn.Open();  
  dr=cmd.ExecuteReader();  
  if(dr.Read())  
  {  
  Byte[]   byteBLOBData   =     new   Byte[0];  
                                  byteBLOBData   =   (Byte[])dr.GetValue(0);  
  MemoryStream   stmBLOBData   =   new   MemoryStream(byteBLOBData);  
  s1.Image=Image.FromStream(stmBLOBData);  
   
  byteBLOBData   =   (Byte[])dr.GetValue(1);  
  stmBLOBData   =   new   MemoryStream(byteBLOBData);  
  s2.Image=Image.FromStream(stmBLOBData);  
  }  
  dr.Close();  
  conn.Close();  
  }  
   
  private   void   button3_Click(object   sender,   System.EventArgs   e)    
  {  
  if(str1==null)   return;  
   
  OleDbConnection   conn=new   OleDbConnection(Common.ComClass.ComClass.GetConnStr());  
  OleDbCommand   cmd=new   OleDbCommand("update   签名   set   负责人=@Image",conn);  
  string   strBLOBFilePath=str1;  
   
  FileStream   fsBLOBFile   =     new   FileStream(strBLOBFilePath,FileMode.Open,   FileAccess.Read);  
  Byte[]   bytBLOBData   =   new   Byte[fsBLOBFile.Length];    
  fsBLOBFile.Read(bytBLOBData,   0,   bytBLOBData.Length);  
  fsBLOBFile.Close();  
   
  OleDbParameter     prm=new   OleDbParameter("@Image",OleDbType.Binary,bytBLOBData.Length,  
  ParameterDirection.Input,false,0,0,null,DataRowVersion.Current,bytBLOBData);  
  cmd.Parameters.Add(prm);  
   
  conn.Open();  
  cmd.ExecuteNonQuery();  
  conn.Close();  
   
  ComClass.Msg("成功保存技术负责人签名!");  
   
  }  

 

3、
FileStream   _fs   =   new   FileStream("D://DevelopTools//foxmail6.0beta3.exe"   ,   FileMode.Open   ,   FileAccess.Read);  
  BinaryReader   _br   =   new   BinaryReader(_fs   ,   Encoding.Default);  
  byte[]   btImage   =   new   byte[_fs.Length];  
  _br.Read(btImage   ,   0   ,   Convert.ToInt32((_fs.Length)));  
  _br.Close();  
  _fs.Close();  
  string   strSQL   =   "INSERT   INTO   FILES(FILECONTENT   ,   FILETYPE)   VALUES(@FILECONTENT   ,   @FILETYPE)";  
  using(SqlConnection   conn   =   new   SqlConnection("server   =   (local)   ;   database   =   fileupload   ;   pwd   =   sa   ;   uid   =   sa"))  
  {  
  conn.Open();  
  SqlCommand   cmd   =   new   SqlCommand(strSQL   ,   conn);  
  cmd.Parameters.Add("@FILECONTENT"   ,   btImage);  
  cmd.Parameters.Add("@FILETYPE"   ,   "exe");  
  cmd.ExecuteNonQuery();  
  }

 

4、

后台代码:  
  public   void   FileUpload(object   sender,   EventArgs   e)  
          {  
                  string   strFilePath   =   "C://uploadfile//"   +   inpFile.PostedFile.FileName;  
                  string   strContentType   =   inpFile.PostedFile.ContentType;  
                  inpFile.PostedFile.SaveAs(strFilePath);  
                  SqlConnection   connectionFileUpload;  
                  SqlCommand   commandCheckFile;  
                  SqlDataReader   datareaderCheckFile;  
                  string   strCheckFile;  
                   
                  strCheckFile   =   "SELECT   filename   FROM   files   WHERE   username='"   +   Session["sessionUserName"]   +   "'   AND   filename='"   +   inpFile.PostedFile.FileName   +   "'";  
                  connectionFileUpload   =   new   SqlConnection("server=localhost;database=dbs;uid=sa;pwd=********;");  
                  commandCheckFile   =   new   SqlCommand(strCheckFile,   connectionFileUpload);  
                   
                  connectionFileUpload.Open();  
                  datareaderCheckFile   =   commandCheckFile.ExecuteReader();  
                  if   (datareaderCheckFile.HasRows)  
                  {  
                          datareaderCheckFile.Close();  
                          connectionFileUpload.Close();  
                  }  
                  else  
                  {  
                          datareaderCheckFile.Close();  
                          string   strFileUpload   =   "INSERT   files(username,filename,filetype,filelength,updatetime)   VALUES   (@username,@filename,@filetype,@filelength,@updatetime)";  
                          SqlCommand   commandFileUpload;  
                          commandFileUpload   =   new   SqlCommand(strFileUpload,   connectionFileUpload);  
                          commandFileUpload.Parameters.Add("@username",   Session["sessionUserName"]);  
                          commandFileUpload.Parameters.Add("@filename",   inpFile.PostedFile.FileName);  
                          commandFileUpload.Parameters.Add("@filetype",   strContentType);  
                          commandFileUpload.Parameters.Add("@filelength",   inpFile.PostedFile.ContentLength.ToString());  
                          commandFileUpload.Parameters.Add("@updatetime",   System.DateTime.Now);  
                          commandFileUpload.ExecuteNonQuery();  
                  }  
                  connectionFileUpload.Close();  
                  Response.Redirect("UpLoadFile.aspx");  
          }  
   
  前台:  
  <input   type="file"   id="inpFile"   name="inpFile"   />

 

6、

从access存取图片,我把代码帖出来  
  1.存取  
  protected   void   btnUpImage_Click(object   sender,   EventArgs   e)  
          {  
                  Session.Remove("Image");  
                  if   (FileUpload1.PostedFile.ContentLength   >   0)  
                  {  
                          string   FileName   =   FileUpload1.PostedFile.FileName.ToLower();  
                          string   ExtName   =   FileName.Substring(FileName.LastIndexOf(".")   +   1);  
                          if   (ExtName   ==   "gif"   ||   ExtName   ==   "jpeg"   ||   ExtName   ==   "jpg")  
                          {  
                                  Session["Image"]   =   FileUpload1.FileBytes;  
                          }  
                          else  
                          {  
                                Page.RegisterStartupScript("error",   "<script>alert('不支持这种文件!')</script>");  
                          }  
                  }  
                  else  
                  {  
                          Response.Write("<script>alert('不存在这个文件!')</script>");  
                  }  
                  if   (Session["Image"]   !=   null)  
                  {  
                          imgProduct.ImageUrl   =   "Image.aspx";  
                  }  
          }  
          protected   void   btnSave_Click(object   sender,   EventArgs   e)  
          {  
                  int   sortid=int.Parse(ddlType2.SelectedValue);  
                  string   command   =   "insert   into   goods   (goodsname,price,function,pic,sortid)   values(@goodsname,@price,@function,@pic,"+sortid+")";  
                  //sortid用参数不知道为什么总是提示类型不匹配,所以只能直接在插入  
                  OleDbCommand   objCommand=new   OleDbCommand();  
                  objCommand.CommandText   =   command;  
                  //objCommand.Parameters.AddWithValue("@sortid",   5);  
                  objCommand.Parameters.AddWithValue("@goodsname",   txtName.Text);  
                  objCommand.Parameters.AddWithValue("@price",   Convert.ToDecimal(txtPrice.Text));  
                  objCommand.Parameters.AddWithValue("@function",   txtIntro.Text);  
   
                  if   (Session["Image"]   !=   null)  
                  {  
                          objCommand.Parameters.AddWithValue("@pic",   (byte[])Session["Image"]);  
                  }  
                  else  
                  {  
                          byte[]   buffer=new   byte[1024*1024];    
                          FileStream   fsPic=new   FileStream(Server.MapPath("~/admin/images/noimage.gif"),FileMode.OpenOrCreate);  
                          fsPic.Read(buffer,   0,   Convert.ToInt32(fsPic.Length));  
                          Session["Image"]=buffer;  
                          objCommand.Parameters.AddWithValue("@pic",   (byte[])Session["Image"]);  
   
                  }  
                  DB.excuteNonQuery(objCommand);  
                  //Page.RegisterStartupScript("error",   "<script>alert('产品信息已添加!')</script>");  
                  Response.Redirect("ManageProduct.aspx");  
                   
          }  
  2.用单独一个页面显示图片,以记录的id为参数,GetImageByID.aspx  
  <asp:Image   runat="server"   ImageUrl='<%#DataBinder.Eval(Container.DataItem,"pic","GetImageById.aspx?id={0}")%>'></asp:Image>

 

7、

 

存:  
  FileInfo   fi=new   FileInfo(filePath);  
  FileStream   fileStream=fi.OpenRead();  
  int   length=(int)fileStream.Length;  
  byte[]   fileData=new   byte[length];  
  fileStream.Read(fileData,0,length);  
   
  //Sql    
  OleDbCommand   command   =   new   OleDbCommand   ("INSERT   INTO   t1   (filename,fileData)"   +   "VALUES   (@filename,@fileData)",   myConnection);  
  //add   para   1  
  System.Data.OleDb.OleDbParameter   parafileName   =   new   OleDbParameter("@filename",   System.Data.OleDb.OleDbType.VarChar,50);    
  parafileName.Value   ="it.jpg";  
  command.Parameters.Add(parafileName);  
   
  //add   para2  
  System.Data.OleDb.OleDbParameter   paramPersonImage   =   new   OleDbParameter("@fileData",   System.Data.OleDb.OleDbType.Binary);    
  paramPersonImage.Value   =   fileData;  
  command.Parameters.Add(paramPersonImage);  
   
  //Excute    
  this.OpenDB();  
  command.ExecuteNonQuery();  
  myConnection.Close();

 

取:  
  OleDbCommand   cmd=new   OleDbCommand(strSel,myConnection);  
  OleDbDataReader   dr=cmd.ExecuteReader();  
  if(dr.Read())  
  {  
  byte[]   by=(byte[])dr.GetValue(2);  
  MemoryStream   ms=new   MemoryStream(by);  
  Image   img=Image.FromStream(ms);  
  pb.Image=img;  
  }  
  dr.Close();  
  cmd.Dispose();  
  myConnection.Close();

 

8、

 /*********************     以文件方式保存     *****************************/  
  在页面添加如下控件:  
  <asp:FileUpload   runat="server"   ID="UploadedFile"   />  
  <asp:Button   runat="server"   ID="btnSaveFile"   Text="上传"   OnClick="btnSaveFile_OnClick"   />  
  在后台文件添加这个函数:  
                  protected   void   btnSaveFile_OnClick(object   sender,   EventArgs   e)  
                  {  
                          if   (UploadedFile.HasFile)  
                          {  
                                  string   destDir   =   你希望保存此图片的物理地址;  
                                  try  
                                  {  
                                          UploadedFile.SaveAs(destDir   +   UploadedFile.FileName);  
                                  }  
                                  catch   (Exception   exc)  
                                  {  
                                          //处理出错信息  
                                          ErrorMessage.Text   =   exc.Message;  
                                  }  
                          }  
                          else  
                          {  
                                  ErrorMessage.Text   =   "您还没选择一个上传的文件。";  
                          }  
                  }  
   
  /****************   以地址方式保存图片   ********************/  
          void   funSaveImg()  
          {  
                  OleDbConnection   objConnection   =   new   OleDbConnection();  
                  OleDbCommand   objCommand   =   new   OleDbCommand();  
                  int   intI;  
                  objConnection.ConnectionString   =   "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data   Source="   +   你的ACCESS数据库文件地址;  
                  objCommand.Connection   =   objConnection;  
                           
                  objCommand.CommandText   =   "INSERT   INTO   .....";       //添加一条记录图片地址的记录,此处省略  
   
                  try  
                  {  
                          objConnection.Open();  
                          objCommand.ExecuteNonQuery();  
                  }  
                  catch   (Exception   e)  
                  {  
                          //此处省略  
                  }  
          }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值