<-- IE錯誤修正 --> 如何在ASP.NET中上傳檔案到資料庫 - RiS社群 | FileMaker 中小企業應用



快速發表主題
返回   RiS社群 | FileMaker 中小企業應用 > PHP / ASP.NET / HTML5 / jQuery > HTML5 = TAG + CSS3 + JavaScript APIs > ASP & ASP.NET

ASP & ASP.NET 從早期的ASP動態網頁到新一代的"大內(.NET)"高手,想進入微軟ASP.NET的核心與相關技術就來這交流。


FileMaker 教學 FileMaker 14 教學課程 FileMaker 教學
FileMaker 課程(僅接受公司/單位或1對1專屬教學

輕鬆學會FileMaker
帶你認識FileMaker

FileMaker俱樂部 加入FileMaker獲取官方資訊 FileMaker俱樂部
FileMaker俱樂部

回覆
 
LinkBack 主題工具 顯示模式
  #1 (permalink)  
舊 2007-12-18
Bing 的頭像
論壇管理員
 
註冊日期: 2007-08-21
住址: 台北, 桃園, 台中(豐原區)
文章: 5,366
酷 如何在ASP.NET中上傳檔案到資料庫

上回談到了如何下載檔案,包含資料庫中的檔案,動態產生的檔案...等。
這次我們來看看怎麼把檔案上傳到資料庫中,這邊需要注意一個小地方,在上傳檔案到資料庫的部分,資料欄位的性態若是Access請選擇Ole物件,若是SQL Server請選擇Image格式。

接著您可以透過底下的程式碼進行檔案的上傳:

If Me.FileUpload1.PostedFile.ContentLength > 0 Then
  Dim cn As New Data.OleDb.OleDbConnection
  Dim dc As Data.OleDb.OleDbCommand
  Dim para As Data.OleDb.OleDbParameter
  Dim SQL, FileName As String
 
 '連線字串
  cn.ConnectionString = Me.AccessDataSource1.ConnectionString
  cn.Open()
  
'執行 TextBox 中的 SQL 指令
  FileName = Me.FileUpload1.PostedFile.FileName
  SQL = "insert into FileStorage (FileName,FileBody) values ('" & FileName & "',?)"
  
'建立 SqlCommand 物件
  dc = New Data.OleDb.OleDbCommand(sql, cn)
  para = New Data.OleDb.OleDbParameter("file", Data.OleDb.OleDbType.Binary)
  para.Value = Me.FileUpload1.FileBytes
  dc.Parameters.Add(para)
  
'執行(透過 Parameters 將檔案儲存到資料庫)
  dc.ExecuteNonQuery()
  ShowAlertMsg("上傳檔案儲存完畢!")
Else
  ShowAlertMsg("上傳檔案不存在!")
End If

  上傳至資料庫中的檔案,可以透過底下的方式重新下載回來,請特別這注意這張網頁在叫用的時候必須提供檔案編號做為URL中的命令列參數:

  Me.AccessDataSource1.SelectCommand = "select * from FileStorage where uid=" & Request.QueryString("FileID")
  Dim dv As Data.DataView = Me.AccessDataSource1.Select(New DataSourceSelectArguments)
  
'準備下載檔案
  Response.ClearHeaders()
  Response.Clear()
  Response.Expires = 0
  Response.Buffer = True
  Dim fileName As String = dv.Item(0).Item("FileName")
  
'透過 Header 設定檔名
  Response.AddHeader("content-disposition", "attachment; filename=" & Chr(34) & System.Web.HttpUtility.UrlEncode(IO.Path.GetFileName(fileName), System.Text.Encoding.UTF8) & Chr(34))
  Response.ContentType = "Application/octet-stream"
  
'傳出要讓使用者下載的內容
  Response.BinaryWrite(dv.Item(0).Item("FileBody"))
 
 '釋放資源
  Response.End()

整個範例請參考:
http://video.studyhost.com/Download/...loadWithDB.rar

更多...

回覆時引用此篇文章
  #2 (permalink)  
舊 2008-02-15
初級會員
 
註冊日期: 2008-02-15
文章: 1
預設 新手

我把它改成SQL
但是為什麼dc.execunonquery()錯誤
還有 請問一下
SQL="insert into ....values()"
可以解釋一下參數裡面的意思嗎?
para=new....()
那個括號裡面是什麼意思阿?
我是完全沒有碰過sql的語法
可否說明一下!!
謝謝你!!

回覆時引用此篇文章
回覆

主題工具
顯示模式

發表文章規則
不允許您發表新主題
不允許您發表文章
不允許您上傳附件
不允許您編輯自已的文章

開啟 BB 代碼
關閉 HTML 程式碼
Trackbacks are 關閉
Pingbacks are 關閉
Refbacks are 開啟



所有時間均為 +9。現在的時間是 09:50 AM
Powered by vBulletin® 版本 3.7.2
版權所有 ©2000 - 2017,Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden
RiS 社群 ( 感謝正洋資訊顧問有限公司技術指導 ) - 使用3.7.2永久合法版權。
Ad Management by RedTyger



Content Relevant URLs by vBSEO 3.6.0 PL2