在服务器中保存文件并使其可访问的位置 VB.NET

Where to save files in a Server and make it accessible VB.NET

我有一个桌面应用程序(VB.NET 和 MS Access)运行良好,但只能在一台计算机上使用(无共享数据库)。我正在研究该应用程序一次可供 5 到 10 人使用的可能性(Client/Server)。

我决定对数据库使用 MySQL,该数据库已启动 运行,但我仍在考虑将不同用户上传的图像保存在何处最好,以便它可以所有用户均可访问。

编辑: 它应该存储在服务器的共享文件夹中吗?如果这是最好的方法,请问我该如何实现?

谢谢

如果你已经转移到 MySQL(如果你只有 5 到 10 个用户,我会保存到 MS sql express,但你可能会留在 MySQL 因为大小限制)您可以将图片存储在数据库中。

MySQL 支持 BLOB 数据类型(用于存储二进制数据)。

codeproject 上有一些关于如何保存和检索图像的好例子 http://www.codeproject.com/Articles/437937/Save-and-Retrieve-Image-from-a-SQL-Server-Database
Store picture to database; retrieve from db into Picturebox

但基本思路是这样的(存储数据)

Dim mstream As New System.IO.MemoryStream()
PbPicture.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim arrImage() As Byte = mstream.GetBuffer()

FileSize = mstream.Length
Dim sqlcmd As New MySqlCommand
Dim sql As String
mstream.Close()

sql = "insert into [your table]  (picture, filename, filesize) 
                           VALUES(@File, @FileName, @FileSize)"

Try
    conn.Open()
    With sqlcmd
        .CommandText = sql
        .Connection = conn
        .Parameters.AddWithValue("@FileName", filename)
        .Parameters.AddWithValue("@FileSize", FileSize)
        .Parameters.AddWithValue("@File", arrImage)

        .ExecuteNonQuery()
    End With
Catch ex As Exception
    MsgBox(ex.Message)
Finally
    conn.Close()
End Try

和类似的东西(从数据库中取回数据——PbPicture 在这个例子中是一个图片框)

Dim adapter As New MySqlDataAdapter
adapter.SelectCommand = Cmd

data = New DataTable

adapter = New MySqlDataAdapter("select picture from [yourtable]", conn)
commandbuild = New MySqlCommandBuilder(adapter)
adapter.Fill(data)

Dim lb() As Byte = data.Rows(0).Item("picture")
Dim lstr As New System.IO.MemoryStream(lb)
PbPicture.Image = Image.FromStream(lstr)
PbPicture.SizeMode = PictureBoxSizeMode.StretchImage
lstr.Close()