-
December 7th, 2016, 14:59
#11
عضو انجمن
پاسخ : کمک برای آپلود در php

نوشته اصلی توسط
webhosts
با کدام روش تا یک گیگابایت آپلود کردید؟
هر دو

نوشته اصلی توسط
webhosts
از ftp نمیتونیم استفاده کنیم. استفاده از ftp محدودیت زیاد داره. قابل کنترل نیست. نمی شه بایت هایی که ارسال می شه رو چک کرد که مثلا یه فایل ده مگی آیا کامل رفته یا نه
http://ir1.php.net/ftp_size
-
-
December 7th, 2016 14:59
# ADS
-
December 7th, 2016, 15:14
#12
عضو دائم
پاسخ : کمک برای آپلود در php

نوشته اصلی توسط
webhosts
از ftp نمیتونیم استفاده کنیم. استفاده از ftp محدودیت زیاد داره. قابل کنترل نیست. نمی شه بایت هایی که ارسال می شه رو چک کرد که مثلا یه فایل ده مگی آیا کامل رفته یا نه
دو روش به ذهنم میرسه
1. اپلود با curl که مشابه ftp میشه
2. دانلود از سرور دوم. فایل ها در سرور اول دارای لینک محدود به سرور دوم باشند و به جای اپلود از سرور 1 به 2 مستقیم توسط 2 از 1 دانلود شوند. در این روش برای نوشتن کلاینت دانلود روی سرور 2 بهتر هست از زبان های برنامه نویسی قوی تر برای کار با فایل ها استفاده کنید
Sent from my LG-D724 using Tapatalk
-
-
December 7th, 2016, 15:24
#13
پاسخ : کمک برای آپلود در php
یک روشی هست عمومی نمیشه توضیح داد.
بیا پ.خ تا بگم
-
-
December 7th, 2016, 16:48
#14
پاسخ : کمک برای آپلود در php

نوشته اصلی توسط
webhostfa
یک روشی هست عمومی نمیشه توضیح داد.
بیا پ.خ تا بگم
ممنون میشم اگر روشتون را از پیام خصوصی ارسال کنید.
-
-
December 7th, 2016, 16:48
#15
عضو انجمن
پاسخ : کمک برای آپلود در php
سلام
بهترین راه این هست که شما 2 فایل PHP داشته باشید یکی در سرور اول و یکی در سرور دوم
فایل سرور اول بصورت FTP فایل رو در سرور دوم آپلود کنه و بعد از آپلود از طریق CURL فایل PHP سرور دوم رو اجرا کنه و فایل موجود در سرور اول و دوم رو از نظر حجم و نام برسی کنه, اگه مشابه بود که کاری انجام نده یا نهایتاً یه log ثبت کنه
اگه مشابه نبود فایل در سرور دوم unlink بشه و درخواست آپلود مجدد داده بشه
راه های زیادی برای این کار وجود داره
میشه کل عمیات رو بصورت دانلود انجام داد, یعنی بجای اینکه فایل رو روی سرور دوم آپلود کنید, اونو از سرور اول دانلود کنید
-
-
December 7th, 2016, 16:53
#16
پاسخ : کمک برای آپلود در php

نوشته اصلی توسط
lizard.tiny
سلام
بهترین راه این هست که شما 2 فایل PHP داشته باشید یکی در سرور اول و یکی در سرور دوم
فایل سرور اول بصورت FTP فایل رو در سرور دوم آپلود کنه و بعد از آپلود از طریق CURL فایل PHP سرور دوم رو اجرا کنه و فایل موجود در سرور اول و دوم رو از نظر حجم و نام برسی کنه, اگه مشابه بود که کاری انجام نده یا نهایتاً یه log ثبت کنه
اگه مشابه نبود فایل در سرور دوم unlink بشه و درخواست آپلود مجدد داده بشه
راه های زیادی برای این کار وجود داره
میشه کل عمیات رو بصورت دانلود انجام داد, یعنی بجای اینکه فایل رو روی سرور دوم آپلود کنید, اونو از سرور اول دانلود کنید
چندتا هدف داریم:
1- کاربرها بتونن فایل هایی با حجم بالای 2 گیگ را آپلود کنند.
2- فایل ها کامل و بدون مشکل آپلود شوند.
3- مشکل امنیتی وجود نداشته باشد.
4- سرور اول که اسکریپت روی اون نصب است ، هیچ فایلی روی آن آپلود نشود. فایل ها مستقیم روی سرور دوم آپلود شوند.
-
-
December 7th, 2016, 17:01
#17
عضو انجمن
پاسخ : کمک برای آپلود در php

نوشته اصلی توسط
webhosts
چندتا هدف داریم:
1- کاربرها بتونن فایل هایی با حجم بالای 2 گیگ را آپلود کنند.
2- فایل ها کامل و بدون مشکل آپلود شوند.
3- مشکل امنیتی وجود نداشته باشد.
4- سرور اول که اسکریپت روی اون نصب است ، هیچ فایلی روی آن آپلود نشود. فایل ها مستقیم روی سرور دوم آپلود شوند.
با این وجود بهترین راه استفاده از تابع ftp_put هست, بهتره برای اینکار یک وب سرویس rest بنویسید که بعد از آپلود صحت فایل آپلود شده رو به اسکریپت برگردونه تا اطمینان داشته باشید که فایل به درستی و کامل آپلود شده باشه
در خصوص امنیت هم میتونید موقع آپلود فایل در هاست اصلی که اسکریپت آپلودر روش هست موارد امنیتی رو برسی کنید, مواردی مثل نام فایل, پسوند
همچنین برای بالاتر رفتن امنیت میتونید یک دیتابیس ایجاد کنید که اطلاعات فایل های آپلودی رو ذخیره کنه و موقع آپلود نام و پسوند فایل رو تغییر بده, مثلاً اگه کاربری فایل milad.mp3 رو آپلود کرد این فایل تبدیل بشه به یک فایل بدون پسوند به نام 541f98322eaea41f2b2e3d023972f098 و این نام + نام و پسوند اصلی اون در دیتابیس ذخیره بشه, وقتی کاربر لینک دانلود رو داد سیستم فایل 541f98322eaea41f2b2e3d023972f098 رو مجدداً تغییر نام میده به milad.mp3 و دانلود میشه
همچنین در سرور دانلود میتونید از طریق تنظیمات سروری یا فایل htaccess خروجی فایل های مشخص کنید, یعنی تایین کنید فایل هایی مثل php, html و ... حتی اگه آپلود هم شدن امکان دانلود و اجرا نداشته باشن
البته در این حالت برای اینکه فشاری به سرور نیاد پیشنهاد میشه از ماژول های سمت سرور مثل XSendFile و ... استفاده کنید
در کل در PHP راه کارهای خیلی زیادی برای اجرای یک عملیات وجود داره که نحوه پیاده سازی اونها به تجربه و سلیقه برنامه نویس بستگی داره
-
تعداد تشکر ها از lizard.tiny به دلیل پست مفید
-
December 7th, 2016, 20:07
#18
پاسخ : کمک برای آپلود در php

نوشته اصلی توسط
lizard.tiny
با این وجود بهترین راه استفاده از تابع ftp_put هست, بهتره برای اینکار یک وب سرویس rest بنویسید که بعد از آپلود صحت فایل آپلود شده رو به اسکریپت برگردونه تا اطمینان داشته باشید که فایل به درستی و کامل آپلود شده باشه
در خصوص امنیت هم میتونید موقع آپلود فایل در هاست اصلی که اسکریپت آپلودر روش هست موارد امنیتی رو برسی کنید, مواردی مثل نام فایل, پسوند
همچنین برای بالاتر رفتن امنیت میتونید یک دیتابیس ایجاد کنید که اطلاعات فایل های آپلودی رو ذخیره کنه و موقع آپلود نام و پسوند فایل رو تغییر بده, مثلاً اگه کاربری فایل milad.mp3 رو آپلود کرد این فایل تبدیل بشه به یک فایل بدون پسوند به نام 541f98322eaea41f2b2e3d023972f098 و این نام + نام و پسوند اصلی اون در دیتابیس ذخیره بشه, وقتی کاربر لینک دانلود رو داد سیستم فایل 541f98322eaea41f2b2e3d023972f098 رو مجدداً تغییر نام میده به milad.mp3 و دانلود میشه
همچنین در سرور دانلود میتونید از طریق تنظیمات سروری یا فایل htaccess خروجی فایل های مشخص کنید, یعنی تایین کنید فایل هایی مثل php, html و ... حتی اگه آپلود هم شدن امکان دانلود و اجرا نداشته باشن
البته در این حالت برای اینکه فشاری به سرور نیاد پیشنهاد میشه از ماژول های سمت سرور مثل XSendFile و ... استفاده کنید
در کل در PHP راه کارهای خیلی زیادی برای اجرای یک عملیات وجود داره که نحوه پیاده سازی اونها به تجربه و سلیقه برنامه نویس بستگی داره
احتمال زیاد با برنامه های فایل منیجر کار کردید. می دونید که حتی وقتی یه فایل رو از طریق برنامه فایل منیجر آپلود می کنید، ممکنه فایل درست انتقال پیدا نکنه. حتی با فرض استفاده از این روش، باید کل فایل ابتدا روی سرور خود اسکریپت بره و بعد منتقل بشه به سرور اصلی از طریق اف تی پی. حالا شما فرض کنید که یه فایل حجم بالا این اتفاق براش بیافته. اگر از rest استفاده کنیم ، در آن واحد ممکنه ده ها فایل با هم آپلود بشه، اصلا نمیشه با اف تی پی هندل کرد. امنیت هم که اصلا مبحث فرق می کنه! تغییر پسوند فایل که ابتدایی ترین هست و اگر انجام نشه که کلا انگار سرور ما حیات خلوت هکرهای تازه کار هست.
-
-
December 7th, 2016, 20:24
#19
عضو انجمن
پاسخ : کمک برای آپلود در php

نوشته اصلی توسط
webhosts
احتمال زیاد با برنامه های فایل منیجر کار کردید. می دونید که حتی وقتی یه فایل رو از طریق برنامه فایل منیجر آپلود می کنید، ممکنه فایل درست انتقال پیدا نکنه. حتی با فرض استفاده از این روش، باید کل فایل ابتدا روی سرور خود اسکریپت بره و بعد منتقل بشه به سرور اصلی از طریق اف تی پی. حالا شما فرض کنید که یه فایل حجم بالا این اتفاق براش بیافته. اگر از rest استفاده کنیم ، در آن واحد ممکنه ده ها فایل با هم آپلود بشه، اصلا نمیشه با اف تی پی هندل کرد. امنیت هم که اصلا مبحث فرق می کنه! تغییر پسوند فایل که ابتدایی ترین هست و اگر انجام نشه که کلا انگار سرور ما حیات خلوت هکرهای تازه کار هست.
این مورد به نوع معماری کد نویسی شما داره
نیازی نیست فایل روی سرور اول آپلود بشه, کافیه موقعی که کاربر فایل رو Select میکنه واسه آپلود اطلاعات فایل رو در دیتابیس ذخیره کنید و بعد از آپلود برسی کنید
راه دیگه اینکه همه کدهای مربوط به آپلود رو روی سرور دوم بنویسید و سرور اول فقط یک فرم HTML ساده باشه که فایل رو Select کنه و سمت سرور دوم POST کنه
-