FileUpload control in visual studio and save the i

2019-09-20 11:30发布

问题:

How to use fileupload control to upload an image and save it in a table in MySQL workbench database? and how to create the connection. the name of tabel is 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 ";
        }
    }
}

回答1:

So here is the code i wrote for your saving images into your roots, you have to create a folder in your root of application for example 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

as you can see there is a method for change name, assuming you just want to save jpg files, for other files you can use extension:

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

Simply after these code ran, you can easily save the PicAddress as a string into your database, so make for example nvarchar field for it. anytime you want to show the image you just need to reference the address of the image to your image tag:

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