PDA

نسخه کامل مشاهده نسخه کامل : دانلود منیجر در php



javadvjj
07-11-2008, 12:33
سلام دوستان
در بعضی از سایت ها دیدم که برای دانلود یک فایل چنین ادرسی رو داده
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
بعد این لینک من از این آدرس فایل رو دانلود می کنم قضیش چیه میشه اسکریبت این رو به من نشون بدید
بای تا های

Bill Gates
07-11-2008, 14:10
سلام
مقدار fileid رو میگیره میره تو بانک توی سطر ها دنبال چنین مقداری میگرده بعد از یافت کردن تو همون سطر فیلدی که لینکش توش هست مقدارش رو اجرا میکنه

تشکر//

jandedy
07-11-2008, 15:14
سلام ،

براي اين كار بايد :



در يك فايل مثلا download.php بايد اينكار را بكني :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدو در فايل ديگر بايد لينك داد .


توضيحات :18: :

متغيير


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدشامل مسير فايل است كه مي توانيد خودتان مشخص كنيد (( مثلا آدرس رو از ديتابيس بگيريد ))

متغيير
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدرو هم مي توانيد همان كار بالا را كنيد. اين متغيير شامل نوع فايل مي باشد (( براي اطلاعات دهي بيشتر ))



توجه : نبايد قبل از اين كد ها چيزي به مرورگر فرستاد ، حتي 1 فاصله .

neopersia
07-11-2008, 17:35
jandedy جان این کدی که نوشتی دو سه تا مشکل داره!
اولیش اینه که چیزی رو به مرورگر نمیفرسته که دانلود بشه یا نمایش داده بشه!
اشکال بعدی هم همون mime type هست که text/html استفاده کردی. چون معمولاً مرورگر ها این تایپ رو نمایش میدن نه اینکه دانلود کنن!
مشکل سوم هم بهینه نبودن اسکرپته! مثلاً اگه یه فایل 1 گیگی داشته باشیم این کد میاد همه یک گیگ رو توی رم ذخیره میکنه بعدش کم کم برای کاربر میفرسته که پدر سرور در میاد!
بهتره از readfile در این مواقع استفاده بشه!

jandedy
07-11-2008, 21:56
jandedy جان این کدی که نوشتی دو سه تا مشکل داره!
اولیش اینه که چیزی رو به مرورگر نمیفرسته که دانلود بشه یا نمایش داده بشه!
اشکال بعدی هم همون mime type هست که text/html استفاده کردی. چون معمولاً مرورگر ها این تایپ رو نمایش میدن نه اینکه دانلود کنن!
مشکل سوم هم بهینه نبودن اسکرپته! مثلاً اگه یه فایل 1 گیگی داشته باشیم این کد میاد همه یک گیگ رو توی رم ذخیره میکنه بعدش کم کم برای کاربر میفرسته که پدر سرور در میاد!
بهتره از readfile در این مواقع استفاده بشه!


بله ، درست است ، چيزي نمي فرستد . بخاط اين كه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید رو نوشتم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید حل شد //

من فقط براي اينكه كاربر نوع فايل رو بدوند نوشتم // :31::31:

درباره آخر هم بگم ، من كجا نوشتم كه اين كار براي فايل 1 گيگ اي مي باشد ؟ من براي فايل هايي كوچك درست كردم ، ولي در پايان درست مي فرماييد // :31::31: :20::20:


با تشكر //

jandedy
07-11-2008, 22:02
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اصلاح شد //

neopersia
08-11-2008, 00:22
منظور من اون غلط املایی نبود. این کد اصلاح شده ای هم که نوشتی فقط یک فایل صفر بایتی رو برای کاربر ذخیره میکنه!
باید فایل برای کاربر خونده بشه تا اون بتونه ذخیره کنه حالا یا با استفاده از echo مثل همون روش اول که گفتی و echo رو جا انداخته بودی به این صورت که محتوای فایل توسط توابع مختلفی که موجود هست مثل fopen یا file_get_content گرفته بشه و با استفاده از echo به مرورگر فرستاده بشه. البته برای فایلهای حجیم درست نیست همه فایل رو یکباره توی حافظه لود کرد!
روش بعد هم استفاده از تابع readfile هست. اینطوری:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
file$ آدرس فایلی هست که باید دانلود بشه. لازم نیست حتماً نام فایل توی آدرس بیاد. فقط یه پارامتر باشه که با استفاده از اون بشه فایل رو پیدا کرد کافیه. مثلاً ID رکوردی که اطلاعات فایل رو تو دیتابیس نگهداری میکنه!
در ضمن Content-Type رو هم برای فایلهایی که باید دانلود بشه معمولاً application/octet-stream انتخاب میکنند تا مرورگر اشتباهی فکر نکنه که این فایل برای اونه. وقتی هم که نتونه فایل رو بشناسه پنجره دانلودشو باز میکنه!

d4rkangel
19-11-2008, 12:09
من این کد رو نوشتم. ولی بازم مشکل داره:41:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

neopersia
19-11-2008, 15:20
بایر کوتیشن ها رو از توی آدرس فایل بردارید تا کار کنه یعنی به جای این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
باید اینو بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته خوب بهتر هم هست نام کامل فایل رو با متد GET نفرستید چون ممکنه مشکل به وجود بیاره (هم مشکل امنیتی داره و هم اینکه ممکنه اگر کاراکتر خاصی توی نام فایل باشه فایل رو نتونه پیدا کنه)

javadvjj
12-12-2008, 11:30
سلام برادرا
من این کار رو کردم بدر سرور اومد جلو چشماش
آقا این که فایل رو اول در رم سرور لود ی کنه و بعد تیکه تیکه در اختیار کار بر می زاره
من فقط می خواستم لینک مستقیم ندم