上传并替换相同的图像文件(如果已存在)

时间:2015-09-03 05:17:46

标签: vb.net picturebox

我有一个名为PB_Company_Logo的图片框,我有一个名为btn_Save的按钮,在此按钮中我有function这样可以将图片保存在PB_Company_Logo到{{1} }}

current_directory/images

问题是,在某些情况下,用户会上传新的Public Sub save_PB(PB_Name As PictureBox) Dim filename As String = "company_logo.png" Dim path As String = Directory.GetCurrentDirectory() & "\images" Dim filename_path As String = System.IO.Path.Combine(path, filename) If (Not System.IO.Directory.Exists(path)) Then System.IO.Directory.CreateDirectory(path) PB_Name.Image.Save(filename_path) Else PB_Name.Image.Save(filename_path) End If End Sub 。我希望系统将新图像的上传视为替换以前的company_logo.png

我认为此行代码中的错误意味着该文件当前处于使用状态company_logo.png,因此无法替换。

(locked)

1 个答案:

答案 0 :(得分:0)

当您使用图像文件加载pictureBox控件时,ide(vs)会锁定文件。当您在设计时将pictureBox控件的image属性设置为文件时会发生这种情况。

您可以使用FileStream对象。 例如:

    Dim fs As System.IO.FileStream
' Specify a valid picture file path on your computer.
fs = New System.IO.FileStream("C:\WINNT\Web\Wallpaper\Fly Away.jpg", 
     IO.FileMode.Open, IO.FileAccess.Read)
PictureBox1.Image = System.Drawing.Image.FromStream(fs)
fs.Close()

完成解决方法后,您可以使用System.IO.File.Exists(img)命名空间检查图片是否存在。

示例:这将检查传入的图像是否已经存在,如果存在,则会替换它。

 Dim imageStr As String = "~/images/name.jpg"

  If System.IO.File.Exists(imageStr) Then
    Image1.ImageUrl = "~/images/name.jpg"
End If