附件打开保存方法VB

附件存储一般为数据库存储,以2进制存储在表t_Accessory 的FData字段中。
sFileName 为本地文件,例如:C:\Users\Desktop\11.txt
sTmpFileName 为保存临时文件路径,用于保存压缩本地文件后的临时文件例如 D:\CODE\temp.tmp
varFile 为 kdzip压缩文件后得到的二进制,用户保存到数据库
VB 保存
Public Function SaveData()
Dim ozip As Object
Dim sFileName As String
Dim sTmpFileName As String
Dim smFile As Stream
Dim smFileNoCompress As Stream
Dim varFile As Variant
Dim bytFile() As Byte
Set ozip = CreateObject("KDZIP.ZIP")
ozip.Compress sFileName, sTmpFileName, 7
Set ozip = Nothing
Set smFile = New ADODB.Stream
Set smFileNoCompress = New ADODB.Stream
smFile.Type = adTypeBinary
smFile.Open
smFile.LoadFromFile sTmpFileName
bytFile() = smFile.Read
Set smFile = Nothing
varFile = bytFile()
End Function
C#
//SQL存储方式
private DataTable SQLStore()
{
DataTable rtn = new DataTable();
string desFilePath = HttpContext.Current.Server.MapPath("./") + FileUpload1.FileName;
if (FileUpload1.HasFile)
{
FileUpload1.MoveTo(desFilePath, MoveToOptions.Overwrite);
KDZipLib zip = new KDZipLib();
FileStream FStream = new FileStream(desFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] data = new byte[FStream.Length];
FStream.Read(data, 0, data.Length);
FStream.Close();
string strFileName = Path.GetFileName(FileUpload1.FileName);
string strFileSize = Math.Floor(FileUpload1.ContentLength / 1024f) + "K";
DataRow dr = AccessoryData.NewRow();
DataTable dt = AccessoryData;
dr["FIndex"] = dt.Rows.Count + 1;
dr["FID"] = -dt.Rows.Count - 1;
dr["FUploadTime"] = K3DateTimeFormatInfo.K3LongDateFormat(DateTime.Now);
//附件数据
dr["FData"] = zip.Zip(data);
dr["FFilename"] = strFileName;
dr["FFileSize"] = Convert.ToInt32(data.Length);
dr["FDesc"] = this.fileDesc.Value;
dr["FUploader"] = MMTS.K3Connect.GetProperty("UserID");
if (this.m_FPage <= 1)
{
dr["FPage"] = 0;
dr["FEntryID"] = 0;
}
else
{
附件打开保存方法VB
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



