Моя дилемма заключается в том, что мне нужно получить данные blob, хранящиеся в таблице в Oracle. Я создал ссылки с данными с помощью jquery, которые ссылаются на общий обработчик http blobHandler.ashx, где я запрашиваю базу данных для файла и возвращаю его пользователю. Это работает для изображений, которые открываются в браузере, но когда дело доходит до других типов файлов (pdf, word, excel), программа загружает только сам файл .ashx.
Как мне заставить его скачать файл с его расширением?
using (OracleConnection objConn = new OracleConnection(conStr))
{
using (OracleCommand cmd = new OracleCommand())
{
cmd.Connection = objConn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT fl.file_content_type, fl.file_data,fl.file_name FROM fnd_lobs fl WHERE fl.file_id = " + mediano;
try
{
objConn.Open();
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
OracleBlob blob = dr.GetOracleBlob(1);
FileStream FS = new FileStream(dr["file_name"].ToString(), FileMode.Create);
Byte[] byteArr = new Byte[blob.Length];
int i = blob.Read(byteArr,0,System.Convert.ToInt32(blob.Length));
MemoryStream memStream = new MemoryStream(byteArr);
context.Response.AddHeader("Content-disposition: inline", "attachment; filename=" + dr["file_name"]);
context.Response.ContentType = dr["file_content_type"].ToString();
context.Response.OutputStream.Write(byteArr,0,i);
}
}
}
catch(Exception exe)
{
context.Response.Write(exe.Message);
}
finally
{
cmd.Dispose();
//pcur.Dispose();
objConn.Close();
objConn.Dispose();
context.Response.Flush();
context.Response.End();
}
}
}
Я использую .net framework 1.1, Visual Studio 2003, версию базы данных oracle 10.3.0.5
Заранее благодарю вас за любой совет, который вы могли бы дать, это мой первый вопрос.