PDA

View Full Version : دانلود یک فایل آپلود شده



آرام جان گل
شنبه 21 آذر 1388, 08:05 صبح
سلام

من برای اینکه اجازه دانلود فایلهای آپلود شده ام را به کاربر بدهم یک لینک تعریف کرده ام که خصوصیت Href آن را برابر نام فایل می دهم و این طوری فایل دانلود میشه

مشکل من اینه که اگه فایل آپلود شده PDF یا Image باشه فایل درخواست شده را در همان صفحه باز می کنه در حالی که من می خوام مرورگر صفحه دانلود را برام باز کنه

اگه فایل من ازنوع Word یا Exel باشه مشکلی نداره و صفحه دانلوو مرورگر باز میشه.

کد من:


<ahref='<%#"ContractRezme/" + Eval("xContractorsCode_FK") + "/" + Eval("xFileName")%>'>
</a>


توی همین سدیت وقتی جستجو کردم فهمیدم اگه فایل ها را Zip کنیم برای تمام این فایلها این اتفاق می افتد و صفحه دانلود مرورگر باز میشه

حالاچطوری فایلی را که از کاربر می گیر م Zip کنم؟
آیا دانلود فایلهای Zip شده هم مثل فایلهای عادی است

لطفا نمونه کد بدهید با توضیح تنها ، مشکلی حل نمی شه این مشکلی است که در هشتاد درصد صفحات جستجو شده دیده میشه
لطفا راهنمایی کنید ممنون

m_kalantar.cs
شنبه 21 آذر 1388, 09:59 صبح
یک راه حل این است که هنگام دریافت فایل پسوند را چک کنید اگر Zip نبود عملیات را لغو کنید و از کاربر بخواهید فایل را zip کند .

Mostafa_Dindar
شنبه 21 آذر 1388, 10:00 صبح
سلام .
همانطور كه فرمودين Browser با توجه به Extention فايل تصميم ميگيره كه اونو نمايش بده يا دانلود كنه. به طور پيشفرض هم عكسها رو سعي ميكنه نمايش بده .
در صورتي كه بخواي اونو دانلود كني ميتوني از متد TransmitFile شي Response به صورت زير استفاده كني :

Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition","attachment; filename=photo1.jpg");
Response.TransmitFile( Server.MapPath("~/images/photo1.jpg") );
Response.End();

موفق باشيد

آرام جان گل
شنبه 21 آذر 1388, 13:29 عصر
سلام

ممنون ازکاربر Lastphoenix

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

من کدم را در تاپیک اول گذاشتم

لطفا با استفاده از لینک توضیح بدید یا اگه روش دیگه ای هست کامل توضیح بدید
مرسی

Mostafa_Dindar
شنبه 21 آذر 1388, 13:56 عصر
بهتره به جاي تگ a يك LinkButton قرار بدين و كد رو در رويداد Click اون بنويسين . ولي اونجا ديگه به
داده ها به شكل Eval دسترسي نداريد . بايد يك جور ديگه (بسته به نحوه و جايي كه استفاده ميكنيد ببينيد چطور راحت هستيد) اونها رو تو متد مورد نظر فراخواني كنيد .

موفق باشيد