PDA

View Full Version : سوال: دریافت فایل از دیتابیس و عدم تشخیص نوع فایل در مرورگر کروم



MasoudAdmin
چهارشنبه 18 مرداد 1402, 20:08 عصر
با سلام
من فایلم رو از دیتابیس می خونم و وقتی کلید مشاهده فایل رو می زنم فایل رو از دیتابیس میخونه منتهی در مرورگر فایرفاکس وقتی فایل دریافت می شود نوع فایل مثلا Pdf هست تشخیص میده ولی در مرورگرهای دیگه مثل کروم یا Edge فایل دریافت میشه ولی نوع فایلی که دریافت شده رو تشخیص نمیده.
این کد من هست:

string FileName = "Help";
string ContentType = string.Empty;
byte[] FileDate = null;
ConnectionString = CryptorEngine.Decrypt(ConfigurationManager.Connect ionStrings["MyConnection"].ConnectionString, true);
SqlConnection ConMain = new SqlConnection();
ConMain.ConnectionString = ConnectionString;
ConMain.Open();
SqlCommand CmdMain = new SqlCommand();
CmdMain.Connection = ConMain;
CmdMain.CommandType = CommandType.StoredProcedure;
CmdMain.CommandText = "SP_ShowHelpFile";
SqlDataReader DrData = CmdMain.ExecuteReader();
DrData.Read();
ContentType = DrData["FileExtension"].ToString();
FileDate = (byte[])DrData["FileData"];
DrData.Close();
ConMain.Close();
Response.ContentType = ContentType;
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.OutputStream.Write(FileDate, 0, FileDate.Length);
Response.Flush();


ممنون میشم راهنمایی کنید.

ROSTAM2
پنج شنبه 19 مرداد 1402, 04:42 صبح
سلام.
قالب یا همون Extension از فایل رو به برنامه دقیق معرفی کن، *.PDF

MasoudAdmin
پنج شنبه 19 مرداد 1402, 08:05 صبح
با سلام. با توجه به اینکه فایل هایی که در دیتابیس ذخیره می شوند با Extensionهای متفاوتی ذخیره می شوند، و من علاوه بر فایل Extension اون فایل هم موقع درج فایل ذخیره می کنم، توی برنامه قالب فایل رو هم خوندم.


ContentType = DrData["FileExtension"].ToString();


اگر درست متوجه شده باشم یعنی منظور شما این هست که کد رو باید اینجوری اصلاح کنم؟



Response.ContentType = ContentType; Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName+"."+ContentType);

MasoudAdmin
جمعه 20 مرداد 1402, 18:17 عصر
سلام
با این مورد هم حل نشد. جالبه فقط فایرفاکس اوکی هست. بقیه مرورگرها فایل رو دریافت میکنن ولی نوع فایل رو تشخیص نمیدن!!

ROSTAM2
دوشنبه 23 مرداد 1402, 13:00 عصر
با سلام
من فایلم رو از دیتابیس می خونم و وقتی کلید مشاهده فایل رو می زنم فایل رو از دیتابیس میخونه منتهی در مرورگر فایرفاکس وقتی فایل دریافت می شود نوع فایل مثلا Pdf هست تشخیص میده ولی در مرورگرهای دیگه مثل کروم یا Edge فایل دریافت میشه ولی نوع فایلی که دریافت شده رو تشخیص نمیده.
این کد من هست:

string FileName = "Help";
string ContentType = string.Empty;
byte[] FileDate = null;
ConnectionString = CryptorEngine.Decrypt(ConfigurationManager.Connect ionStrings["MyConnection"].ConnectionString, true);
SqlConnection ConMain = new SqlConnection();
ConMain.ConnectionString = ConnectionString;
ConMain.Open();
SqlCommand CmdMain = new SqlCommand();
CmdMain.Connection = ConMain;
CmdMain.CommandType = CommandType.StoredProcedure;
CmdMain.CommandText = "SP_ShowHelpFile";
SqlDataReader DrData = CmdMain.ExecuteReader();
DrData.Read();
ContentType = DrData["FileExtension"].ToString();
FileDate = (byte[])DrData["FileData"];
DrData.Close();
ConMain.Close();
Response.ContentType = ContentType;
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.OutputStream.Write(FileDate, 0, FileDate.Length);
Response.Flush();


ممنون میشم راهنمایی کنید.

c# - Stream PDF to browser? - Stack Overflow (https://stackoverflow.com/questions/16193960/stream-pdf-to-browser)

Upload PDF File and Open it in Browser - DotNetFunda.com (https://www.dotnetfunda.com/articles/show/2234/upload-pdf-file-and-open-it-in-browser)

MasoudAdmin
سه شنبه 24 مرداد 1402, 21:23 عصر
با سلام
این موارد هم کمکی نکردند
الان کدی دارم اوکی هست فقط اینکه بقیه مرورگرها نوع فایل رو تشخیص نمی دن واسم دردسر شده:ناراحت: