PDA

View Full Version : آپلود فایل با سرعت بالا



pary_daryayi
چهارشنبه 09 مهر 1393, 16:29 عصر
سلام .
برای اینکه فایلی رو روی وب با سرعت بالا آپلود کنیم ، چکار باید کرد .
جستجو کردم به این (http://www.takwd.ir/coding/%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D9%85%D8%B3%D8%AA%D9%82%DB%8C%D9%85-%D9%88-%D8%B3%D8%B1%DB%8C%D8%B9-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7-%D8%AF%D8%B1-%D9%87%D8%A7%D8%B3%D8%AA-%D8%A8%D8%A7-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-PHP.html) رسیدم :


copy("http://takwd.ir/latest.zip", "file.zip");


شما هم از همین استفاده میکنید ؟ یا راههای دیگه و بهتری هم هست ؟

Unique
پنج شنبه 10 مهر 1393, 11:42 صبح
البته این که دانلود از سایت takwd.ir روی سرور اجرا کننده هست و من با توجه به کد جواب دانلود را میدم :

راستش برای سرعت بالا باید از برنامه هایی که چند connection را برای دریافت فایل ایجاد میکنند (مثل IDM که این کار را انجام میده) استفاده کرد. قطعا دستور copy مربوط به PHP شامل این نمیشه و باید یا اسکریپتی با این مشخصات پیدا کنید یا برنامه ای را از shell اجرا کنید. توی سرور های shared باید با مسئول سایت صحبت کنید و بخواین براتون برنامه ای را برای این کار نصب کنند (بعدی میدونم و اکثر امکانش نیست) ولی توی سرور های VPS میتونید برنامه aria2c (و خیلی برنامه های دیگه ...) را نصب کنید با shell فراحونیش کنین و با سرعت بالا .

pary_daryayi
جمعه 11 مهر 1393, 16:35 عصر
ممنون .
البته این لینکی که گفتم انگار داره در مورد آپلود فایل از یک هاست به هاست دیگه صحبت میکنه .
من منظورم آپلود از روی کامپیوتر خودمون روی هاست هست ،
سرور VPS هم ندارم ، تعداد آپلودها زیاد نیست .

mbf5923
جمعه 11 مهر 1393, 18:44 عصر
از نرم افزار های مربوطه مانند cuteftp استفاده کنید

Veteran
جمعه 11 مهر 1393, 19:10 عصر
ممنون .
البته این لینکی که گفتم انگار داره در مورد آپلود فایل از یک هاست به هاست دیگه صحبت میکنه .
من منظورم آپلود از روی کامپیوتر خودمون روی هاست هست ،
سرور VPS هم ندارم ، تعداد آپلودها زیاد نیست .

نمیشه،باید سرعت کانکشن خودتون بالا باشه !

pary_daryayi
جمعه 11 مهر 1393, 21:00 عصر
از نرم افزار های مربوطه مانند cuteftp استفاده کنید

برای خودم نمیخوام ، برای سایتی که برای مشتری ساختم میخوام . اونم یک مشتری عادی .
بیشتر دنبال راهی بودم از لحاظ منطق برنامه نویسی .

تو این لینک (http://barnamenevis.org/showthread.php?471053-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%AD%D8%AC%DB%8C%D9%85) آقای eshpilen در مورد فایل های حجیم توضیح دادند ،
البته فایل های مدنظر حجیم نیستند . مثلا 15 مگابایت ، اما همون هم حدود 7-8 دقیقه زمان میبره .

numberone1
شنبه 12 مهر 1393, 00:21 صبح
فایلتونو زیپ کنید . موقع زیپ کردن Best و انتخاب کنید . حجمش از 8 مگ میشه 2 مگ . بعد آپلود کنید
با php خیلی راحت میتونید فایل زیپ و باز کنید و بخونید

Unique
شنبه 12 مهر 1393, 16:33 عصر
فایلتونو زیپ کنید . موقع زیپ کردن Best و انتخاب کنید . حجمش از 8 مگ میشه 2 مگ . بعد آپلود کنید

این راه حل کلی نیست و مثلا اگه فایل ها عکس یا ویدئو باشه اصلا تغییر خاصی نمیکنه !


من منظورم آپلود از روی کامپیوتر خودمون روی هاست هست ،
سرعت upload در بهترین شرایط توی ایران معادل سرعت دانلود یا کمتر هست و بهتر از این نمیشه. اگه دارین فایل را با post ارسال میکنید سرعت کلا داغونه و مرورگر هم نمیتونه فایل را با نرم افزار هایی که گفتم ارسال کنه. بهترین راه استفاده از ftp هست. اگه نیاز به پردازش روی فایل پس از ارسال مشتری دارین از مشتری بخواین فایلش را توی مسیر خاصی روی ftp کپی کنه و بعد اسکریپت شما روی فایل هر عملیاتی خواست انجام بده.

bestdata
شنبه 12 مهر 1393, 16:44 عصر
یه روش دیگه هم هست که البته به درد شما نمیخوره ...

خیلی از فایلهایی که تو سایت های اشتراک گذاری (مثل مدیا فایر) آپلود میشن تکراری هستن
سایت از یه فایل کد هش میسازه و اگه کسی همون فایل رو بخواد آپلود کنه اول کد هش رو بررسی میکنه اگه یکی بود از سیستم کاربر فایل رو نمیگیره بلکه از فایلی که قبلا آپلود شده یه کپی میگیره و در مسیری که کاربر میخواد میذاره اینطوری سرعت آپلود (مخصوصا تو فایلهای حجیم ) بظاهر خیلی خوب میشه ولی در اصل اصلا فایلی آپلود نمیشه ...

نمونه بارز این کار رو توی سایت آپارات (البته جهت جلوگیری کلیپ تکراری) میتونید ببینید ...

اما اگه میخواهید سرعت آپلود رو افزایش دهید باید برنامه ای شبیه به IDM رو سمت سرور برنامه نویسی کنید (درون این برنامه از پروتکل های مناسب جهت آپلود استفاده کنید) و اون وقت بطور دیگر از سمت سرور از کاربر طرف دانلود کنید... که ساخت این برنامه خودش کلی وقت میخواد

استفاده از ftp و یا تغییر اشتراک اینترنت کاربران و انتخاب اشتراکی که سرعت آپلود بالایی داره بهترین راه حل ها هستن

موفق و پایدار باشید

Unique
شنبه 12 مهر 1393, 19:57 عصر
یه روش دیگه هم هست که البته به درد شما نمیخوره
پس چرا نقل میکنین دوست عزیز ؟


خیلی از فایلهایی که تو سایت های اشتراک گذاری (مثل مدیا فایر) آپلود میشن تکراری هستن
سایت از یه فایل کد هش میسازه و اگه کسی همون فایل رو بخواد آپلود کنه اول کد هش رو بررسی میکنه اگه یکی بود از سیستم کاربر فایل رو نمیگیره بلکه از فایلی که قبلا آپلود شده یه کپی میگیره و در مسیری که کاربر میخواد میذاره اینطوری سرعت آپلود (مخصوصا تو فایلهای حجیم ) بظاهر خیلی خوب میشه ولی در اصل اصلا فایلی آپلود نمیشه ...


در ضمن این اصلا ربطی به سرعت upload نداره. برای جلوگیری از ذیخره فایل های تکراری روی سرور و از دست دادن بیخودی منابع هستش همین. دلیلش هم اینه تا فایل کامل upload نشه نمیتونه hash ش را تولید کنه مگه با html5 که این سایت ها نمیتونند مطمئن باشن همه از مرورگر html5 استفاده میکنند و قطعا سمت سرور چک میکنن.

bestdata
شنبه 12 مهر 1393, 20:12 عصر
پس چرا نقل میکنین دوست عزیز ؟



در ضمن این اصلا ربطی به سرعت upload نداره. برای جلوگیری از ذیخره فایل های تکراری روی سرور و از دست دادن بیخودی منابع هستش همین. دلیلش هم اینه تا فایل کامل upload نشه نمیتونه hash ش را تولید کنه مگه با html5 که این سایت ها نمیتونند مطمئن باشن همه از مرورگر html5 استفاده میکنند و قطعا سمت سرور چک میکنن.
شاید استراتژی مدیریت رو عوض کنن و از این روش استفاده کنند ... (گفتنش هم ضرر نداره)

یکم دقیق تر بخونید متوجه میشید که بنده ذکر کردم که اصلا فایلی آپلود نمیشه

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

لازم بذکره که آژاکس هم ساخته شده ...

شما بجای ایراد گیری بهتر است بفکر رفع مشکل دوست مشترک باشید ...

موفق و سربلند باشید

Unique
یک شنبه 13 مهر 1393, 00:42 صبح
شاید استراتژی مدیریت رو عوض کنن و از این روش استفاده کنند ... (گفتنش هم ضرر نداره)
هیچ ربطی به سوال تاپیک نداره. اگرچه ایشون هم خیلی بد سوال پرسیدن و هم خیلی بد به دنبال راه حلش بودند. مشکلشون فقط این بود که سرعت آپلود ایران همینه و بس.


شما بجای ایراد گیری بهتر است بفکر رفع مشکل دوست مشترک باشید ...
اولا دلخور نشین اینجا انجمن برنامه نویسی هستش و داریم علمی صحبت میکنیم. مشکلشون را هم باید وزیر اطلاعات و فناوری و این حرفا حل کنند که ما هم قیمت تموم شدمون از افغانستان بیشتره (دو برابر) و هم سرعت اینترنتمون کمتره.


یکم دقیق تر بخونید متوجه میشید که بنده ذکر کردم که اصلا فایلی آپلود نمیشه
میشه بگین سرور چطوری بدون ارسال فایل کد هش تولید میکنه وقتی فایل را نداره ؟ با HTML5 و hash سمت کلاینت میشه این کار را کرد که برای فایل های حجیم کار اشتباهی هستش مثلا فایل ۱ گیگابایتی. اما من تشنه دونستن هستم و میخوام شما بهم یاد بدین چطوری ممکنه !؟

bestdata
یک شنبه 13 مهر 1393, 23:14 عصر
هیچ ربطی به سوال تاپیک نداره. اگرچه ایشون هم خیلی بد سوال پرسیدن و هم خیلی بد به دنبال راه حلش بودند. مشکلشون فقط این بود که سرعت آپلود ایران همینه و بس.


اولا دلخور نشین اینجا انجمن برنامه نویسی هستش و داریم علمی صحبت میکنیم. مشکلشون را هم باید وزیر اطلاعات و فناوری و این حرفا حل کنند که ما هم قیمت تموم شدمون از افغانستان بیشتره (دو برابر) و هم سرعت اینترنتمون کمتره.


میشه بگین سرور چطوری بدون ارسال فایل کد هش تولید میکنه وقتی فایل را نداره ؟ با HTML5 و hash سمت کلاینت میشه این کار را کرد که برای فایل های حجیم کار اشتباهی هستش مثلا فایل ۱ گیگابایتی. اما من تشنه دونستن هستم و میخوام شما بهم یاد بدین چطوری ممکنه !؟

من حجم ترافیک ماهانم 2 گیگ هست ولی فایل 4 گیگ رو به سایت http://onlinemd5.com/ میدم و در زمان کوتاهی حدود چند دقیقه کد hash رو میسازه ...

اگر خواستید تاپیکی جداگونه بزنید تا اگه فرصت داشتم بهتون آموزش بدم چطور میشه همچین کاری کرد (متاسفم برای اصرار روی اطلاعات غلط)
اینم نمونه بدون HTML5 http://www.bruechner.de/md5file/js/
اصلا توی راه حل این کار حرفی از HTML5 زده نشده فقط مرورگر باید دسترسی به محتوا را داشته باشه
http://stackoverflow.com/questions/768268/how-to-calculate-md5-hash-of-a-file-using-javascript

موفق و سربلند باشید

Unique
دوشنبه 14 مهر 1393, 01:09 صبح
اگر خواستید تاپیکی جداگونه بزنید تا اگه فرصت داشتم بهتون آموزش بدم چطور میشه همچین کاری کرد (متاسفم برای اصرار روی اطلاعات غلط)

من اصلا از اینکه اطلاعاتم کم باشه ناراحت نمیشم و حتی اگه شما به این راحتی اصرار دارین اطلاعاتم غلطه و دارم روی اطلاعات غلط پا فشاری میکنم سخت در اشتباه هستین. این را بدونین که بار ها توی هیمن انجمن اگه چیزی را نمیدونستم یا اشتباه گفتم خیلی راحت گفتم ببخشید من نمیدونستم و الان یاد گرفتم و درستش اینه و امیدوارم شما هم جرات و گفتنش را پس از تکمیل بحث داشته باشین. (این کل کل نیست و صرفا یک بحث علمی هستش و به شدت به هم احترام میگذاریم).


اینم نمونه بدون HTML5 http://www.bruechner.de/md5file/js/
اصلا توی راه حل این کار حرفی از HTML5 زده نشده فقط مرورگر باید دسترسی به محتوا را داشته باشه
http://stackoverflow.com/questions/7...ing-javascript

خوشم میاد رفتی تحقیق کردی ولی انقدر دلت میخواسته بگی Unique داره اشتباه میگه که اصلا لینک دومت را نخوندی.:چشمک:

در مورد لینک اولی که دادی و این تابع محاسبه MD5 هستش :


function calculateMd5(event) {
loader.show();

event.stopPropagation();
event.preventDefault();
$('#dropzone').text('');

file = event.dataTransfer.files[0];

setTimeout(function() {calculate(file)}, 20); // due heavy load of the md5 calculation, script stops, so give the js a little time.


$('#dropzone').text('');
$('#dropzone').css('border', '1px solid black');
loader.hide();
}

function calculate(file) {

fileName = file.fileName;

result.text('').append(fileName+' ').hide().css('visibility', 'visible').show('fast');
$('h2').remove();
result.before('<h2>Your MD5 sum:</h2>');

data = file.getAsBinary();
md5_result = bin2hex(rstr_md5(data));


result.append(md5_result);
}


کاملا مشخصه که داره از File API استفاده میکنه.

توی لینک دومی هم اصلا طرف داره خودش به زبون ترش انگلیسی میگه :
older browsers are generally unable to read files from the local filesystem.
و
With a browser that supports the FileAPI, you *can * read the contents of a file
و
Internet Explorer 10 has partial FileAPI support

این جمله آخر نیاز به این داره بگیم طبق این سایت (http://caniuse.com/#feat=fileapi) معتبر IE8 و IE9 که به شدت توی ایران داره استفاده میشه اصلا FileAPI را پشتیباین نمیکنن ! پس طبق حرفی که شما زیر سوال بردی یعین :

در ضمن این اصلا ربطی به سرعت upload نداره. برای جلوگیری از ذیخره فایل های تکراری روی سرور و از دست دادن بیخودی منابع هستش همین. دلیلش هم اینه تا فایل کامل upload نشه نمیتونه hash ش را تولید کنه مگه با html5 که این سایت ها نمیتونند مطمئن باشن همه از مرورگر html5 استفاده میکنند و قطعا سمت سرور چک میکنن.

من درست میگم که نمیشه مطمئن بود هر کسی با هر مرورگری میتونه سمت کلاینت hash را محاسبه کنه. باید HTML5 پشتیبانی کنه مرورگرش تا FileAPI داشته باشه.
حالا شما میگی جایی نگفته HTML5 میخواد ولی دوست عزیز FileAPI خودش از HTML5 معرفی شده. منبع (http://en.wikipedia.org/wiki/HTML5_File_API).

البته من این را ۲ سال پیش چک کردم و سرعتش هم زیاد مناسب نبود اما گویا مشکلات سرعت حل شده و ایراد از Bug مربوط به Firefox بودهو حالا مشکل سرعت محاسبه نیست. در این مورد من به روز نبودم./

حالا منتظر شما هستم ببینم من روی چه چیز اشتباهی با اطلاعات غلطم اصرار دارم !!!!

پیروز باشید.

webmaster.bagheri
شنبه 22 آذر 1393, 15:33 عصر
آموزش آپلود فایل به شیوه ی آژاکس - مجموعه ی آموزشی آژاکس (http://taranmarket.com/Trining/23-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A2%DA%98%D8%A7%DA%A9%D8%B3-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D8%A7-%D8%A2%DA%98%D8%A7%DA%A9%D8%B3.html)

آموزش سئو (http://taranmarket.com/Trining/)

آموزش آژاکس (http://taranmarket.com/Trining/)

joker
یک شنبه 23 آذر 1393, 13:59 عصر
سرعت آپلود فقط بستگی به سرعت اینترنت شما ( اون هم نه میزان دانلود بلکه میزان آپلودی که براتون تعریف شده داره ) در اینترنتهای معمولی نه دیدیکت که کاربران دارند معمولا 1/4 پهنای باند دانلود ، به آپلود اختصاص داده میشه. یعنی اینترنت 1 مگ اگه داشته باشید حدود250 کیلو درثانیه میتونید آپلود کنید.

حجم فایل و پهنای باند دو عامل فیزیکی هستند که از طریق نرم افزاری نمیشه بیخیالشون شد :)


پیوست : راه حلهای دیگه برای کاهش سرباز پکتها هست مثلا استفاده از پروتکل udp صرفا برای اینکه پکتهای هندشیک را موقع ارسال و دریافت پکتها نداشته باشید ولی برای این کار استفاده ازش اصلا منطقی نیست.

پیوست 2: الان اواخر آذرماه هستیم ، و تاپیک اوایل مهرماه ساخته شده.