频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
LightSwitch文件的上传,下载及保存(数据库版)
2017-10-03 14:33:00      个评论    来源:gczxxu的博客  
收藏   我要投稿

LightSwitch文件的上传,下载及保存(数据库版),需要在服务器端数据库中建立以下字段。

二进制、文件名、扩展名

 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

点击复制链接 与好友分享!回本站首页
上一篇:软件开发教程之CXF基础知识学习
下一篇:标准模版库STL之list容器详解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站