6

我可以知道热我可以在 Razor 中写这样的 c# Opendialog 吗?我正在尝试制作一个 openfiledialog,它可以让用户将照片上传到 SqlServerCe 数据库中:

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);
   }
4

1 回答 1

9

您不能在 Web 应用程序中使用特定的 OpenFileDialog(如 c#/winforms/wpf)(不使用 Silverlight 或其他插件)。

你所能做的就是使用一个文件输入标签,当用户点击浏览按钮时,它会导致浏览器打开它的默认文件浏览器对话框:

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

发布表单后,该文件将作为输入流的一部分包含在内。

有关<input>元素的完整规范,请访问此处:http ://www.w3schools.com/tags/tag_input.asp

于 2013-11-05T21:47:55.587 回答