从文件夹中替换/删除图像。C#
我有一个程序,允许用户上传他们宠物的照片。然后,您可以上载5个不同的图像,所有这些图像都保存在特定的文件夹中。然后路径本身保存在数据库中 首先,按下“combobox”,在这个列表中你会找到你输入程序的所有宠物。然后选择“加载图像”。然后,此图像将保存在数据库中的文件夹和路径中。但是如果你用同一只宠物再上传一张图片。此图像也将保存在同一文件夹中。我要做的是删除以前的图像,然后用新路径更新数据库。好吧,我希望你明白我需要什么从文件夹中替换/删除图像。C#,c#,.net,C#,.net,我有一个程序,允许用户上传他们宠物的照片。然后,您可以上载5个不同的图像,所有这些图像都保存在特定的文件夹中。然后路径本身保存在数据库中 首先,按下“combobox”,在这个列表中你会找到你输入程序的所有宠物。然后选择“加载图像”。然后,此图像将保存在数据库中的文件夹和路径中。但是如果你用同一只宠物再上传一张图片。此图像也将保存在同一文件夹中。我要做的是删除以前的图像,然后用新路径更新数据库。好吧,我希望你明白我需要什么 private void btn_upload_Click(objec
private void btn_upload_Click(object sender, EventArgs e) //Load image
{
if (string.IsNullOrEmpty(combo_dogname.Text) || string.IsNullOrWhiteSpace(combo_dogname.Text))
{
MessageBox.Show("Du måste välja en hund!");
}
else
{
OpenFileDialog opFile = new OpenFileDialog();
opFile.Title = "Välj en bild";
opFile.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";
string appPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\UserImages\";
if (Directory.Exists(appPath) == false)
{
Directory.CreateDirectory(appPath);
}
if (opFile.ShowDialog() == DialogResult.OK)
{
try
{
string iName = opFile.SafeFileName; // <---
string filepath = opFile.FileName; // <---
File.Copy(filepath, appPath + iName); // <---
pbox_jordbruksverket.Image = new Bitmap(opFile.OpenFile());
path = filepath;
name = iName;
saveContent();
}
catch
{
if (File.Exists(appPath))
{
File.Delete(appPath);
MessageBox.Show("Filen finns redan!");
}
}
}
else
{
opFile.Dispose();
}
}
}
//Strings
public static string path;
public static string name;
//Save content after uploading image.
public void saveContent()
{
con.Open();
SqlCommand Rem = con.CreateCommand();
Rem.CommandType = CommandType.Text;
string sqlAdd = "INSERT INTO lexidatabase.dbo.tbl_jordbruksverket (username, dogname, img) values('" + Login.username + "', '" + combo_dogname.Text + "', '" + path + "')";
SqlCommand cmd = new SqlCommand(sqlAdd, con);
cmd.ExecuteNonQuery();
MessageBox.Show("Bild sparad");
con.Close();
}
//Removing all images from the selected pet.
private void btn_removeImg_Click(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(combo_dogname.Text) || string.IsNullOrWhiteSpace(combo_dogname.Text))
{
MessageBox.Show("Du måste välja hund först!");
}
else
{
con.Open();
SqlCommand remove = con.CreateCommand();
remove.CommandType = CommandType.Text;
string sqlRemove = "DELETE FROM lexidatabase.dbo.tbl_jordbruksverket WHERE username = '" + Login.username + "' AND dogname = '" + combo_dogname.Text + "'";
SqlCommand cmd = new SqlCommand(sqlRemove, con);
cmd.ExecuteNonQuery();
MessageBox.Show("Bild borttagen!");
con.Close();
}
}
private void btn\u upload\u单击(对象发送者,事件参数)//加载图像
{
if(string.IsNullOrEmpty(combo_dogname.Text)| string.IsNullOrWhiteSpace(combo_dogname.Text))
{
MessageBox.Show(“dumåste välja en hund!”);
}
其他的
{
OpenFileDialog opFile=新建OpenFileDialog();
opFile.Title=“Välj en bild”;
opFile.Filter=“jpg文件(*.jpg)|*.jpg |所有文件(*.*)|*.”;
字符串appPath=Path.GetDirectoryName(Application.ExecutablePath)+@“\UserImages\”;
if(Directory.Exists(appPath)==false)
{
CreateDirectory(appPath);
}
if(opFile.ShowDialog()==DialogResult.OK)
{
尝试
{
字符串iName=opFile.SafeFileName;//旁注:if(Directory.Exists(appPath)==false)
是冗余的,可以删除;if(File.Exists(appPath))
也可以被删除您的代码存在严重的sql注入漏洞,恶意用户可以很容易地访问您的数据库,甚至删除/更改数据库中的数据。请始终使用!@DmitryBychenko“被删除”是什么意思?它们是无用的还是?@Esko我会研究一下,非常感谢。@LolPrezy:您不必检查k如果创建目录时存在目录:directory.CreateDirectory(appPath);
创建目录或不执行任何操作(如果dir存在)。与文件相同。删除
如果文件存在,则将删除它,否则将不执行任何操作