做法應該是
檢查 TMP 有沒有該檔案的暫存檔存在
沒有就執行寫入暫存檔動作
最後應該會建立一個超連結
透過該超連結打開該暫存檔
[C#]基本的開啟檔案Application
Dim cms As String = "insert into tblsysattachment (refno, corpid, funid, docname, filename, attfile) values ('000213B----XD', '255', 'Stock', '" & myFile & "', '" & myFile & "', '@myByte') "
Dim cm As New SqlClient.SqlCommand(cms, cn)
cm.Parameters.Add("@myByte", SqlDbType.Image)
cm.Parameters("@myByte").Value = myByte
======================================
可以了
資料庫存的 Imag 型別 是一個 Byte()
先透過 FileStream 建立 檔案(包含目錄位置)
然後弄一個 Buffer 緩衝區 用來寫入資料
然後弄一個 BinaryWriter 去寫入資料到檔案
三個 資料串流鏈結
把資料讀寫到 Buffer
Buffer.flush 清空緩衝,資料全部實際寫入
try-catch
關閉 Buffer
關閉 FileStream
完成
================================================
該死好像可以
ERP目前做得到
所以沒道理.net做不來
要查一下
看資料庫,似乎是把檔案存成二進位檔案,(作法像是IMAG,)
會記錄檔案名稱
取出來的時候我想程式碼
不知道是不是單純開一個相同附檔名的檔案
然後把資料到進去
然後開起就去叫用預設的副檔名開啟程式,去開啟
要測試看看
建立的檔案應該存放在tmp資料夾
不會去影響當初存入的檔案內容
所有APP操作都在tmp資料夾建立的暫存檔案上
'知道說SQL 存放Imag型別的資料,可以是任何形式的檔案(強)
'該Imag取出的數值,似乎會是一個 Byte() 型別
所以可能透過Stream去開一個檔案,
給定抓到的副檔名,
建一個 tmp 目錄
檔名改一下流水號之類的
把Byte()寫進去
C# Stream 與 Byte [] 轉換
試試看
=============================================
目前是想說透過類似 serailization 序列化
把檔案資料讀取轉 Bite
然後序列化純到資料庫
到時候再讀取Bite
轉回原始格式
但是問題是怎麼知道說原始格式是什麼
好像有 get方法可以得到原本的編碼格式
不知道可不可以用
應該沒這麼簡單
==========================================
.NET 筆記:序列化
感覺好像不能用,序列化是用在物件狀態,將物件狀態存入文字檔案
下次讀取文字檔案內容再把物件狀態還原
除非說能夠讀取檔案,轉成bite,存入物件,然後序列化
反序列化,將物件狀態讀出bite,再還原成檔案
好像可以....但是怎麼還原成檔案好像很難
沒頭緒
==========================================
java 圖片 binaryStream 直接存取
http://blog.xuite.net/svc.net/666/47758522
VB.NET
http://tsuozoe.pixnet.net/blog/post/19177333
沒有留言:
張貼留言