OpenFileDialog in cshtml

2019-02-17 07:56发布

问题:

may I know hot can I write something like this c# Opendialog in Razor? I'm trying to make an openfiledialog that would offer user to upload photo into SqlServerCe database:

OpenFileDialog openFileDialog1 = new OpenFileDialog();

openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "All files (*.*)|*.*";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
   try
   {
      string path = openFileDialog1.FileName;
      byte[] image = File.ReadAllBytes(path);
      string query = "UPDATE firma SET logo=@Image WHERE id = 1";
      SqlCommand sqlCommand = new SqlCommand(query, conn);
      sqlCommand.Parameters.AddWithValue("@Image", image);
      conn.Open();
      sqlCommand.ExecuteNonQuery();
      conn.Close();
   }
   catch (Exception ex)
   {
      MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
   }

回答1:

You can't use a specific OpenFileDialog (a la c#/winforms/wpf) in a web application (without using Silverlight or some other plugin).

All you can do is use a file input tag, which will cause the browser to open its default file browser dialog box when the user hits the browse button:

<input type="file" name="elementName" />

When the form is posted, that file will be included as part of the input stream.

For the full specification of the <input> element, go here: http://www.w3schools.com/tags/tag_input.asp