全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1485
推到 Plurk!
推到 Facebook!

如何上傳圖檔到 Server 端的資料庫

缺席
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-19 10:50:16 IP:211.75.xxx.xxx 未訂閱
請問大家: 要如何上傳圖檔到遠端 Server 的資料庫 資料庫可以是 Access 或 M$ SQL Server 拜託大家 Eric Lin
------
Eric Lin
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-19 13:30:23 IP:202.3.xxx.xxx 未訂閱
Hi, 試試看下面的方法, 資料庫是 SQL Server    
using System.Web;
using System.IO;            foreach ( HttpPostedFile aFile in Request.Files )
        {
                if ( aFile.ContentLength > 0 )
                {
                        string[] aSplit = aFile.FileName.Split( '\\' );
                        string aFullPath = Server.MapPath( @"TempDir\"   aSplit[aSplit.Length-1] );
                        aFile.SaveAs( aFullPath );                            DBCommand1.CommandText = 
                                " insert into TABLE                 "  
                                "           ( FileName,             "  
                                "             FileContent )         "  
                                "    values ( @F1,                  "   
                                "             @F2         )         ";
                        DBCommand1.Parameters.Add( "@F1", SqlDbType.VarChar );
                        DBCommand1.Parameters.Add( "@F2", SqlDbType.Image );
                        DBCommand1.Parameters["@F1"].Value = aFullPath;                            FileStream aStream = new FileStream(  aFullPath, FileMode.OpenOrCreate, FileAccess.Read );                                        
                        using ( BinaryReader aReader = new BinaryReader( aStream ) )
                        {
                                DBCommand1.Parameters["@F2"].Value = aReader.ReadBytes( (int)aReader.BaseStream.Length );
                                aReader.Close();
                        }                            DBCommand1.Connection.Open();
                        try
                        {
                                DBCommand1.ExecuteNonQuery();
                        }
                        catch ( Exception Ex )
                        {
                                lbMessage.Value  = 
                                        string.Format( "上傳檔案失敗, 檔案名稱: {0} 
 原因:{1}", 
                                        aFile.FileName, Ex.Message );
                        }
                        finally
                        {
                                DBCommand1.Connection.Close();
                        }                            File.Delete( aFullPath );                    }
        }    
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-20 10:19:58 IP:211.75.xxx.xxx 未訂閱
請問這應該是用 C# 寫的? 還有這樣是不是將上傳的圖片先存再 Server 的某一個目錄 再寫到資料庫內? 在安全性上是否比較有問題 Eric Lin
------
Eric Lin
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-20 11:43:34 IP:61.219.xxx.xxx 未訂閱
引言: 請問這應該是用 C# 寫的? 還有這樣是不是將上傳的圖片先存再 Server 的某一個目錄 再寫到資料庫內? 在安全性上是否比較有問 Eric Lin
1. 用 C# 寫的 2. 如果您有安全上的顧慮, 可以使用
    System.IO.Stream aFileStream = Request.Files[1].InputStream;
替換掉上面的存檔再開 FileStream 的方法, 後面寫資料庫方法一樣
系統時間:2024-07-09 4:07:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!