Upload Server To Server Using http and PHP

D.A.V.O.O.D

Member
با عرض سلام و خسته نباشید خدمت تمامی اساتید مجید آنلاین
کسی می تونه طرز صحیح انجام آپلود از یک هاست به هاست خود با استفاده از fsockopen را توضیح بده ؟
آیا با استفاده از این متد محدودیتی روی سایز فایل و ... ایجاد می شه ؟

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

با تشکر از شما
 

love4php

Active Member
ببین دوست من به چند روش می تونی اسن کار را انجام بدی .. بهتر بگم با پرتکل های مختلفی ...
بستگی داره که با کدوم پرتکل می خوای کار کنی ؟
http یا ftp ؟
اگر با پرتکل ftp می خوای کار کنی که باید یه سوکت به سرور ftp به زنی ... fsockopen بعد شروع کنی فرمان های ftp زا با fwrite برای سرور ارسال کنی ... تا اینکه در مرحله آخر فایل خود را با php باز کنی با همین فرمان بفرسیش بر روی ftp

اگر می خوای http کار کنی ، باید یا صفحه سمت سرور بسازی که آماده شده باشه برای فرمی که حاوی یک فایل است ، منظورم $_FILES هستش ....
حالا تو میایا یک سوکت می زنی و اطلاعات فرم را به وسیله سوکت ارسال می کنی
 

D.A.V.O.O.D

Member
ببین دوست من به چند روش می تونی اسن کار را انجام بدی .. بهتر بگم با پرتکل های مختلفی ...
بستگی داره که با کدوم پرتکل می خوای کار کنی ؟
http یا ftp ؟
اگر با پرتکل ftp می خوای کار کنی که باید یه سوکت به سرور ftp به زنی ... fsockopen بعد شروع کنی فرمان های ftp زا با fwrite برای سرور ارسال کنی ... تا اینکه در مرحله آخر فایل خود را با php باز کنی با همین فرمان بفرسیش بر روی ftp

اگر می خوای http کار کنی ، باید یا صفحه سمت سرور بسازی که آماده شده باشه برای فرمی که حاوی یک فایل است ، منظورم $_FILES هستش ....
حالا تو میایا یک سوکت می زنی و اطلاعات فرم را به وسیله سوکت ارسال می کنی

سلام
ممنونم از پاسخت
منظور منم همین با پرتکل http هست . راستش من می خوام طریقه همین سوکت ارسال کردن و دریافت اطلاعات را بدونم . می خوام یه چیر مثل رپید کیل یا رپید لیچ باشه اما نیازی به استفاده از لینک های رپید شیر نیست . می خوام متد دریافت و آپلود روی سرورش مثل اون باشه . می خوام یک لینک دایرکت بهش بدم . آپلود کنش روی هاستم با سرعت آلپود سرور .

اگه منبعی اسکریپتی ساده لطف کنی و در اختیارم بگذاری ممنونت می شم .
 

sajadmaz

Member
اگر دستور کپی رو سرورتون باز هست میتونین با استفاده از این روش دایرکت لینک هارو سرور به سرور کپی کنید .
 

D.A.V.O.O.D

Member
اگر دستور کپی رو سرورتون باز هست میتونین با استفاده از این روش دایرکت لینک هارو سرور به سرور کپی کنید .
سلام
دستور کپی باز هست ؛ اما محدودیت حجم ایجاد می کنه ، می بایست سرور در اختیار خود آدم باشه تا محدودیت حجم را برداره که متاسفانه دست خودم نیست .
با fsockopen کسی بلد نیست ؟

روی اسکریپت های رپید لیچ و رپید کیل هستا ، کسی می تونه استخراج کنه ازش ؟
 

love4php

Active Member
تو می خوای روی سرور خودت بریزی ؟
ببین کار سختی نیست ... هر وقت می خوای با سوکت کار کنی ، فکر کن داری با فایل ها کار می کنی

قبل از هر چیزی اینصفحه را ببین

http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/

حالا من یس مثال از reference خود php واست می ذارم

PHP:
$fp = pfsockopen("http://yourwebsite.com", 443, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br/>\n";
echo $fp;
} else {
fputs($fp, "GET /path/page.php  HTTP/1.1\r\n"); 
fputs($fp, "Host: yourwebsite.com\r\n"); 
fputs($fp, "Connection: close\r\n\r\n");
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);

به جای /path/page.php آدر فایل روی هاست را بذار ....
به جای yourwebsite.com آدرس سایت یا هاست را بذار

حالا بجای اینکه بیای و echo fgets($fp, 128); کنی بیا و این را echo نکن بلکه بریزش تو یه فایل با نامی که می خوای ...

راحت بنود ؟
 

D.A.V.O.O.D

Member
ممنون از اینکه پاسخ دادی ؛ اما من این کار را کرده بودم . مشکلم اینه که هنگام نوشتن فایل هیدر هایی را که از سرور می گیره را نیز درونش می نویسه !
مثلا واسه یه فایل gif که این کار را کردم در اول فایل خروجی چنین خط هایی دیده می شه :

PHP:
HTTP/1.1 200 OK
Date: Fri, 03 Apr 2009 15:12:00 GMT
Server: Apache/1.3.41 (Unix) mod_deflate/1.0.21 mod_jk/1.2.18 mod_fastcgi/2.4.2 PHP/5.2.3 mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 PHP/4.4.9 FrontPage/5.0.2.2634a mod_ssl/2.8.31 OpenSSL/0.9.7a
Last-Modified: Wed, 10 Sep 2008 03:59:40 GMT
ETag: "938100-2e29-48c7462c"
Accept-Ranges: bytes
Content-Length: 11817
Connection: close
Content-Type: image/gif

راه حلی واسه رفع این مشکل دارید ؟
 

love4php

Active Member
ایولا ... کارت درسته ، خوشم اومد ...... مطمئنا با مباحث tcp آشنایی داری و می دونی که این هدر جواب سرور هستش که میگه ارتباط برقرار شده و چیز هایی که داری دریافت میکنی چیه و نوعش چی هست ...

خب حالا راه حل چیه ؟
پس ما باید اطلاعات را که از این طریق وارد میشه را بخونیم و اگر اطلاعات چزع اطلاعات هدر بود آن ها را ذخیره نکنیم !!!
یعنی با (fgets($this->socket, 1024 چک کن ببین آیا این ها همان اطلاعات هدر هست ؟

همونجا قبل از ذخیره کردن چک کن ...
منتظر خبرت هستم ....

خوشحال می شم کدت را بعدا ببینم ...
 

D.A.V.O.O.D

Member
سلام
راستیتش یه چند روزی هست که دارم ور می رم تا ابن هیدر ها رو توی فایل ننویسه ، اما متاسفانه به نتیجه ای نرسیدم .

شما می تونی کمکم کنی ؟
 

love4php

Active Member
ببخشین که دیر جواب می دم ... ببین با پیدا کردن POSITION این مقدارد یعنی
کد:
\n\r\n\r
می تونی هدر را از کل محتوی جدا کنی
اگر حجم فایلت زیاد نیست اول کل محتوی سوکت را بریز تو یک متغییر بعد از اونجا این مکان را پیادا کن ... منتظر جوابت موفقیت هستم
 
آخرین ویرایش:

D.A.V.O.O.D

Member
آقا ممنون حل شد ! تونستم بنویسم .

فقط یه مشکلی که پیدا کردم توی فایل های حجیم بود . چجوری همزمان هم بخونم و روی فایل بنویسم ؟
این که توی یه متغیر بریزم بعد اون متغیر رو بنویسم توی فایل ؛ به دلیل حجم بالا جواب نمیده . ممنون از اینکه کمک می کنی :rose:
 

love4php

Active Member
شرمنده اصلا این سوال را فراموش کرده بودم ...
بیا یه کاری کن ...
فایل را بخوان و تست کن که آیا هنوز داری هدر را می خونی یا body را .. اگر بادی بود دیگه نریز تو متغیر ... مستقیم بریز تو فایل ....
 

D.A.V.O.O.D

Member
سلام
خواهش می کنم ، حدس می زدم که احتمالا فراموش کردی ...
آقا این که شما می گی درست . ولی می خوام بدونم که قبل همون حلقه while(fof باید فایلی را که می خواهم توش بریزم را باز کنم یا داخل حلقه بازش کنم ؟ ، بعد داخل حلقه fwrite کنم و وقتی حلقه تموم شد فایل را ببندم ؟

با چه متدی فایل را باز کنم ؟ a+ ؟
 

k2-4u

Well-Known Member
download Url دریافت سرور به سرور

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

در حال حاضر آدرس
http://k2-4u.com//setup.zip رو دانلود می کنه

این اسکریپ یک آدرس http میگیره و اونو با همون اسم و پسوند کنار خودش میگذاره
دسترسی فولدری که اسکریپ توشه رو بکنید 777

موفق باشید
 

پیوست ها

  • sock.zip
    901 بایت · بازدیدها: 9

جدیدترین ارسال ها

بالا