【问题标题】:FileUpload control in visual studio and save the image to MySql databaseVisual Studio中的FileUpload控件并将图像保存到MySql数据库
【发布时间】:2017-04-26 07:44:56
【问题描述】:

如何使用fileupload控件上传图片并将其保存在MySQL工作台数据库的表中?以及如何创建连接。 表的名称是 invoicesfp

public partial class Invoices : System.Web.UI.Page
{
    MySql.Data.MySqlClient.MySqlConnection conn ;
    MySql.Data.MySqlClient.MySqlCommand cmd;
    String querystr;

    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            //save image into database
            string str = FileUpload1.FileName;
            FileUpload1.PostedFile.SaveAs(Server.MapPath(".") + "//Invoices//" + str);
            string path = "~//Invoices//" + str.ToString();
            MySqlConnection conn = new MySqlConnection("Server=127.0.0.1;Database=admindb;Uid=root;Pwd=8888;");
            MySqlCommand cmd = new MySqlCommand("insert into invoicesfp values (@v1)", conn);
            conn.Open();
            cmd.Parameters.AddWithValue("v1", TextBox1.Text);

            cmd.ExecuteNonQuery();
            conn.Close();
            Label4.Text = "Image uploaded sucessfully";
        }
        else
        {
            Label4.Text = " Please, upload the image ";
        }
    }
}

【问题讨论】:

  • 是否有必要将图像上传到您的数据库中?我想说的是它浪费空间并浪费性能,将图像保存在应用程序的根目录中,并将文件的地址保存到数据库中,因此任何时候您需要查询它都不会破坏您的数据库。如果您仍然坚持将图像保存到数据库中,我建议您查看此stackoverflow.com/questions/3651183/save-stream-as-image
  • 好的,如何执行您所说的“将图像保存在应用程序的根目录中并将文件地址保存到数据库中,因此任何时候您需要查询它都不会破坏您的数据库" ,表示它的代码是什么?我希望将图像保存在可以在我创建的网站上打开的文件夹中
  • @y.kh 查看答案。

标签: c# mysql mysql-workbench


【解决方案1】:

所以这是我为您将图像保存到根目录而编写的代码,您必须在应用程序的根目录中创建一个文件夹,例如upload

            #region fileupload
            string fn = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
            string ret = Rename.ChangeName();
            string SaveLocation = Server.MapPath("Upload") + "\\" + ret;

            try
            {
                FileUpload1.PostedFile.SaveAs(SaveLocation);
            }
            catch (Exception ex)
            {
                if (ex is ArgumentNullException || ex is NullReferenceException)
                {
                    throw ex; 
                }
            }
            string PicAddress = "~/Upload/" + ret;

            #endregion

如您所见,有一种更改名称的方法,假设您只想保存jpg文件,对于其他文件您可以使用扩展名:

    public static string ChangeName()
    {
        return Guid.NewGuid().ToString("N") + ".jpg";
    }

只需在这些代码运行后,您就可以轻松地将PicAddress 作为字符串保存到您的数据库中,因此请为其创建例如 nvarchar 字段。任何时候你想显示图片,你只需要将图片的地址引用到你的图片标签:

<img src="~/Upload/etcetc.jpg">

【讨论】:

  • 好的,我试试,非常感谢,请问创建连接Mysql数据库的代码放在哪里,代码应该是什么?
  • @y.kh 和上面一样,你需要打开连接并执行插入查询,如下所示: SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd = 新的 SqlCommand(); cmd.CommandText = "插入表名(colname1) 值(val1)"; cmd.CommandType = CommandType.Text; cmd.Connection = sqlConnection1; sqlConnection1.Open(); cmd.ExecuteNonQuey(); sqlConnection1.Close();
  • @y.kh 不客气=)如果是解决方案,请接受答案:)
猜你喜欢
  • 2014-08-30
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多