PDA

View Full Version : کد امکان دانلود برای کاربران



malihe_h
یک شنبه 10 مهر 1390, 11:58 صبح
سلام دوستان.
من هم سوال sa.namvar رو میخوام بپرسم. یکی هم راهکار a href رو پیشنهاد کرده بود.
اما من میخوام پنجره ای که معمولا برای دانلودها باز میشه رو به کاربر نمایش بده (پنجره open یا save) رو نمی دونم این به مرورگر بستگی داره یا کد خاصی لازم داره که همچین پنجره ای رو نمایش بده.
من با سیستم خودم که امتحان می کنم این اتفاق نمی افته.
لطفا راهنماییم کنین؟
ممنون میشم

atarodi
یک شنبه 10 مهر 1390, 13:02 عصر
با سلام
برای کد دانلود از نمونه زیر می تونید استفاده کنید.

Response.AddHeader("Content_Disposition",attachment;
filename=music.mp3);
Response.TransmitFile("music.mp3");


متاسفانه چون خیلی زیاد با دانلود فایل کار نکردم مفهوم "Content_Disposition" و "attachment" را در کدهای بالا نمی دونم، که اگه دوستان اطلاعاتی دارند، خوشحال می شوم توضیحاتی در مورد آنها بفرمایند.

mahdioo12194
یک شنبه 10 مهر 1390, 13:54 عصر
با سلام
برای کد دانلود از نمونه زیر می تونید استفاده کنید.

Response.AddHeader("Content_Disposition",attachment;
filename=music.mp3);
Response.TransmitFile("music.mp3");


متاسفانه چون خیلی زیاد با دانلود فایل کار نکردم مفهوم "Content_Disposition" و "attachment" را در کدهای بالا نمی دونم، که اگه دوستان اطلاعاتی دارند، خوشحال می شوم توضیحاتی در مورد آنها بفرمایند.

این کد بالا خطا میده attachment رو اصلا نمی شناسه آیا باید ืnamespace خاصی اضافه شود!

atarodi
یک شنبه 10 مهر 1390, 14:22 عصر
این کد بالا خطا میده attachment رو اصلا نمی شناسه آیا باید ืnamespace خاصی اضافه شود!

والا گفتم که مفهوم این دو را خودم نمی دونم. از کد زیر که کاملتر است،استفاده کن ببین مشکل رو داری. ولی مطمئنم که به namespace خاصی نیاز ندارد.


protected void Page_Load(object sender, EventArgs e)
{

Response.Clear();
Response.ClearContent();
string filename = (String)Session["filename"];
string filepath = (String)Session["filepath"];
FileInfo fi = new FileInfo(filepath + filename);
Response.AddHeader("Content_Disposition", "attachment; filename=\"" + filename + "\"");
Response.AddHeader("Content_Length", fi.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.TransmitFile(fi.FullName); ;
Response.End();
}

mahdioo12194
یک شنبه 10 مهر 1390, 15:04 عصر
فرض کن من یک عکس به نام 1.jpg را در روت پروزه دارم چه جوری بزارمش واسه دانلود؟

mahdioo12194
یک شنبه 10 مهر 1390, 15:24 عصر
من از این کد استفاده کردم ولی پنجره دانلود باز نشد فقط عکس رو نشون داد!!!!



Response.Clear();
Response.ClearContent();

string filename = "13129637302.JPG";
string filepath = "D:\\Documents and Settings\\a\\Desktop\\SafaCaptchaControl_Demo\\App _Code\\";
FileInfo fi = new FileInfo(filepath + filename);
Response.AddHeader("Content_Disposition", "attachment; filename=\"" + filename + "\"");
Response.AddHeader("Content_Length", fi.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.TransmitFile(fi.FullName); ;
Response.End();

mahdioo12194
یک شنبه 10 مهر 1390, 15:40 عصر
البته الان با فایر فاکس امتحان کردم شد! فقط با اینترنت اکسپلورر مشکل داره؟!!

atarodi
یک شنبه 10 مهر 1390, 16:10 عصر
فرض کن من یک عکس به نام 1.jpg را در روت پروزه دارم چه جوری بزارمش واسه دانلود؟

باید در رویداد لود صفحه مورد نظر یا رویداد کلیک یک Button کد زیر را اضافه نمایید.


Response.ContentType = "image/jpeg";

Response.AppendHeader("Content-Disposition", "attachment; filename=1.jpg");

Response.TransmitFile(Server.MapPath("1.jpg"));

Response.End();