0
我將pdf文件保存在數據庫中,當我從數據庫中下載後,我發現它的名稱已完全更改爲Code之類的東西,請問您能解釋一下原因嗎?以及如何解決這個問題,以獲得相同的PDF文件名稱?這裏是代碼:下載時更改的文件的名稱pdf從數據庫中的文件
插入
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
byte[] file;
using (var stream = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read))
{
using (var reader = new BinaryReader(stream))
{
file = reader.ReadBytes((int)stream.Length);
}
}
SqlConnection varConnection = new SqlConnection("Server=.\\sqlexpress;Database=badge;integrated security=yes");
varConnection.Open();
using (var sqlWrite = new SqlCommand("INSERT INTO archive Values(@dat,@disponible,@fil)", varConnection))
{
sqlWrite.Parameters.Add("@dat", SqlDbType.Date).Value = DateTime.Today;
sqlWrite.Parameters.Add("@disponible", SqlDbType.VarChar, 20).Value = comboBox1.Text;
sqlWrite.Parameters.Add("@fil", SqlDbType.VarBinary, file.Length).Value = file;
sqlWrite.ExecuteNonQuery();
}
varConnection.Close();
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
byte[] file;
using (var stream = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read))
{
using (var reader = new BinaryReader(stream))
{
file = reader.ReadBytes((int)stream.Length);
}
}
SqlConnection varConnection = new SqlConnection("Server=.\\sqlexpress;Database=badge;integrated security=yes");
varConnection.Open();
using (var sqlWrite = new SqlCommand("INSERT INTO archive Values(@dat,@disponible,@fil)", varConnection))
{
sqlWrite.Parameters.Add("@dat", SqlDbType.Date).Value = DateTime.Today;
sqlWrite.Parameters.Add("@disponible", SqlDbType.VarChar, 20).Value = comboBox1.Text;
sqlWrite.Parameters.Add("@fil", SqlDbType.VarBinary, file.Length).Value = file;
sqlWrite.ExecuteNonQuery();
}
varConnection.Close();
下載:
SqlConnection varConnection = new SqlConnection("Server=.\\sqlexpress;Database=badge;integrated security=yes");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select fil from archive where dat = '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "' and disponible='"+comboBox1.Text+"'";
cmd.Connection = varConnection;
varConnection.Open();
SqlDataReader sqlRead = cmd.ExecuteReader();
SaveFileDialog svd = new SaveFileDialog();
svd.ShowDialog();
if (sqlRead.HasRows)
{
while (sqlRead.Read())
{
byte[] fileData = (byte[])sqlRead[0];
BinaryWriter fileCreate =
new BinaryWriter(File.Open(svd.FileName, FileMode.Create));
fileCreate.Write(fileData);
fileCreate.Close();
}
}
varConnection.Close();
做你讀了你的代碼做什麼?如果你閱讀它就很清楚了...... – Gusman