LightSwitch文件的上传,下载及保存(数据库版)
2017-09-30 07:11
369 查看
需要在服务器端数据库中建立以下字段
二进制、文件名、扩展名
***********************************************************************************
***********************************************************************************
Private Sub 打开_Execute()
' 在此编写您的代码。
Try
If AutomationFactory.IsAvailable Then
If Me.SjWenJianGuanLiSet.SelectedItem.文件二进制 Is Nothing Then
Me.ShowMessageBox("数据库未上传相关文件!", "提示!", MessageBoxOption.Ok)
Exit Sub
End If
Dim fullFilePath As String = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Me.SjWenJianGuanLiSet.SelectedItem.文件名称)
Dim fileData As Byte() = Me.SjWenJianGuanLiSet.SelectedItem.文件二进制.ToArray
If fileData IsNot Nothing Then
Using fs As New FileStream(fullFilePath, FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(fileData, 0, fileData.Length)
fs.Close()
End Using
End If
Dim shell = AutomationFactory.CreateObject("Shell.Application")
shell.shellexecute(fullFilePath)
End If
Catch ex As Exception
'Me.ShowMessageBox(ex.ToString)
End Try
End Sub
二进制文件大小验证控制:
Private Sub 文件二进制_Validate(results As EntityValidationResultsBuilder)
' results.AddPropertyError("<错误消息>")
'服务器端验证文件大小是否超过2MB,会影响性能。如页面中出现验证次数较少的话,建议页面中验证。
If Me.文件二进制 IsNot Nothing Then
Dim sizeInMB = Me.文件二进制.Length / 1048576
If sizeInMB > 2 Then
results.AddPropertyError("File Cannot be > 2MB")
End If
End If
End Sub
二进制、文件名、扩展名
Private Sub 上传_Execute() ' 在此编写您的代码。 Dispatchers.Main.Invoke( Sub() '注意!!!要新建数据记录并保存后,才能使用上传功能。否则会提示未生成实例错误。 Dim openDialog As New Controls.OpenFileDialog openDialog.Filter = "All File|*.*" If openDialog.ShowDialog = True Then Using fileData As System.IO.FileStream = openDialog.File.OpenRead Dim fileLen As Long = fileData.Length If fileLen > 0 Then Dim sizeInMB = fileLen / 1048576 If sizeInMB > 2 Then Me.ShowMessageBox("File Cannot be > 2MB") : Exit Sub End If Dim fileBArray(fileLen - 1) As Byte : fileData.Read(fileBArray, 0, fileLen) : fileData.Close() '把打开的文件存入数据库二进制字段,upfileProperty为屏幕中名称,如为子表或窗口。则为me.表名.selectitem.字段 Me.SjWenJianGuanLiSet.SelectedItem.文件二进制 = fileBArray '把打开的文件扩展名存入数据库 文件类型 = openDialog.File.Extension.ToString '把打开的文件名存入数据库 Me.SjWenJianGuanLiSet.SelectedItem.文件名称 = openDialog.File.Name.ToString End If End Using End If End Sub) End Sub
***********************************************************************************
Private Sub 下载_Execute() ' 在此编写您的代码。 Dispatchers.Main.Invoke( Sub() If Me.SjWenJianGuanLiSet.SelectedItem.文件二进制 Is Nothing Then Me.ShowMessageBox("数据库未上传相关文件!", "提示!", MessageBoxOption.Ok) Exit Sub End If Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream(Me.SjWenJianGuanLiSet.SelectedItem.文件二进制) Dispatchers.Main.Invoke( Sub() Dim saveDialog As New Controls.SaveFileDialog saveDialog.DefaultFileName = Me.SjWenJianGuanLiSet.SelectedItem.文件名称 If saveDialog.ShowDialog = True Then Using FileStream As Stream = saveDialog.OpenFile ms.WriteTo(FileStream) End Using End If End Sub) End Sub) End Sub
***********************************************************************************
Private Sub 打开_Execute()
' 在此编写您的代码。
Try
If AutomationFactory.IsAvailable Then
If Me.SjWenJianGuanLiSet.SelectedItem.文件二进制 Is Nothing Then
Me.ShowMessageBox("数据库未上传相关文件!", "提示!", MessageBoxOption.Ok)
Exit Sub
End If
Dim fullFilePath As String = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Me.SjWenJianGuanLiSet.SelectedItem.文件名称)
Dim fileData As Byte() = Me.SjWenJianGuanLiSet.SelectedItem.文件二进制.ToArray
If fileData IsNot Nothing Then
Using fs As New FileStream(fullFilePath, FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(fileData, 0, fileData.Length)
fs.Close()
End Using
End If
Dim shell = AutomationFactory.CreateObject("Shell.Application")
shell.shellexecute(fullFilePath)
End If
Catch ex As Exception
'Me.ShowMessageBox(ex.ToString)
End Try
End Sub
二进制文件大小验证控制:
Private Sub 文件二进制_Validate(results As EntityValidationResultsBuilder)
' results.AddPropertyError("<错误消息>")
'服务器端验证文件大小是否超过2MB,会影响性能。如页面中出现验证次数较少的话,建议页面中验证。
If Me.文件二进制 IsNot Nothing Then
Dim sizeInMB = Me.文件二进制.Length / 1048576
If sizeInMB > 2 Then
results.AddPropertyError("File Cannot be > 2MB")
End If
End If
End Sub
相关文章推荐
- springMvc 中 Excel批量数据上传,利用POI解析数据保存入数据库 及模板文件下载
- 使用cmd命令方式登录ftp实现上传下载文件数据
- JSF,Myfaces上传文件,以及不需要将excel保存到服务解析excel取出excel中的数据
- 上传,解析Excel文件并保存数据到数据库
- Swift - 使用NSURLSession加载数据、下载、上传文件
- Silverlight文件上传下载(下载保存)
- Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[下]
- SpringMVC系列(十一)把后台返回的数据转换成json、文件下载、文件上传
- PHP CURL模拟登陆并提交数据,及PHP CURL文件上传/图片下载等(仅作调试,未完善)
- 上传文件返回的json数据会被提示下载问题解决方案
- 将文件上传、下载(以二进制流保存到数据库)
- Asp.Net上传文件到Access数据中,并从数据库中读取文件并保存
- 读数据 写数据 上传 下载文件 整理
- springMVC高级部分(数据校验,数据错误回显(自定义格式错误显示),拦截器,异常处理,文件上传,文件下载,springmvc运行流程以及springmvc和struts2对比)
- 上传文件保存字节流,下载
- Silverlight文件上传下载实现方法(下载保存)
- ASP.NET MVC实现Excel文件的上传下载以及Excel数据的保存
- ASP.NET中文件上传下载方法集合(上传限制,保存方式-二进制或文件形式,上传Internet上的资源 )
- 使用ajaxFileUpload与SpringMVC实现异步上传下载文件并返回json数据
- 如何解决“文件上传返回JSON数据,在IE下提示下载文件”的问题?