iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 29
0

剩下最後兩天,我決定分享一下 FileUpload與資料庫的整合範例

這算是一個初學者很常遇見、很常發問的FAQ
通常有兩種解法(抉擇):

第一,檔案上傳後,把檔案存入「資料庫
這種作法,把檔案的內容(二進位)存入資料庫,除了程式不好寫,日後要取出也不容易

第二,上傳後,把檔案存入「Web Server的硬碟」,把路徑與檔名存入資料庫
這種作法超簡單!存入資料庫的路徑與檔名,只是簡單的純文字罷了!

但不管怎麼好言相勸,初學者都會一頭鑽入第一種解法(最難的!)
所以.....生命有很多出路,你還有別的路可以走
第一次想到的解法,總是最難!最好不實踐!(這是我上課時最常說的話,最想送給初學者的一句建議)

那麼,我們反過來解說:我今天先介紹「第二種」解法,簡單易懂!
請看 YouTube的教學影片 -- https://youtu.be/ET3YsBlu4LU
Yes

第一,我們先設計一個 Table,在此我用來存放「上傳的 "圖片檔名"」。
唯一要修改的地方,就是 -- 上傳成功(.SaveAS()方法)之後,
放一段 ADO.NET程式,把「圖片檔名」新增到資料表裡面。
(我想,這是比較難的地方。因為大部分初學者根本不看 ADO.NET那兩章的範例與教學的)
最簡單的新增一筆記錄,採用 DataReader,搭配 SqlCommand的 .ExecuteNonQuery() 方法即可

第二,利用 ListView + SqlDataSource
把你剛剛上傳的圖片,展示出來即可。
這裡也有一個重點,就是 Image控制項裡面的 ImageURL屬性,必須使用 [字串 + 資料繫結運算式]

<asp:Image ID="Image1" runat="server" ImageUrl='<%# "~/ASP.NET專題實務/Uploads路徑/" + Eval("資料表的某一個欄位名稱") %>' />

這裡的路徑,是URL網址。 ~符號代表網站的 "根"目錄!

如果您需要文字說明與程式碼,我另外撰寫一些文章作為補充:

FileUpload上傳之後,把圖片檔名存進DB #1 -- 觀念、資料表設計、ADO.NET程式
https://dotblogs.com.tw/mis2000lab/2011/09/22/fileupload_picture_db_insert

下一篇文章:
檔案上傳後,把檔案存入「資料庫
http://ithelp.ithome.com.tw/articles/10188403


上一篇
網頁與圖表 -- Google Chart #2 (JavaScript與後置程式碼)
下一篇
檔案上傳與資料庫的整合#2
系列文
ASP.NET (Web Form)快速入門,全程Youtube影片教學30

尚未有邦友留言

立即登入留言