آژانس هواپیماییdaftare shoma
nexpay

آپلود فایل به یه سایت دیگه با CURL

شروع موضوع توسط nendoke ‏6 مارس 2006 در انجمن PHP

  1. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    سلام :) , بچه ها کسی می دونه چه جوری می شه با cUrl یه فایل رو روی یه هاست دیگه آپلود کرد ؟

    همه کارای لوگین و ... رو خودم انجام دادم و کدای خود سایت مرجع cUrl و PHP رو هم زیر رو رو کردم ولی چیزی که می خواستم رو نتونستم بنویسم :wacko: , کسی هست که بتونه که Sample Code برام اینجا بذاره ؟ :happy:



    مرسی .
     
  2. Parsa_361

    Parsa_361 کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏5 آگوست 2005
    نوشته ها:
    889
    تشکر شده:
    10
    محل سکونت:
    Isfahan, php.ini
    من با socket به پورت ftp وصل میشم و این کارو میکنم
    با curl دنبالش نرفتم
    اگه میخوای یه کد بذارم اینجا ؟
     
  3. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    نه مشکل اینه که من دست رسی FTP ندارم , فرض کنین می خواین یه Form Upload رو تو یه صفحه Submit کنین , من تمام متغیر و Field ها رو می تونم با CURL و به شیوه POST بفرستم ولی فایل رو موندم چه جوری تحت Form بفرستم رو سرور اونجا .
     
  4. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    ببین من نگرفتم دقیق چی می خواهی؟
    این کد رو در یک فایل بزاری و رو هاستت اجرا کنی و پرمیشن اونجایی که توشه 777 بزاری فایل http://sample.com/hba.zip می اد روی هاستت


    اگر هم فقط با curl می خواهی بگو


    PHP:
    <?php
    $file 
    'http://www.sample.com/hba.zipr';
    $newfile 'hba.zip';

    if (!
    copy($file$newfile)) {
       echo 
    "failed to copy $file...\n";
    }else{
       echo 
    "OKKKKKKKK";
    }
    ?> 
     
  5. shankimout

    shankimout Registered User

    تاریخ عضویت:
    ‏17 می 2004
    نوشته ها:
    1,491
    تشکر شده:
    3
    محل سکونت:
    ساری . . . . . . . . . . . . . . Permanently Bann
    با header میتونی فایل بفرستی . رفرنسشو پیدا میکنم میزارم اینجا . فک کنم مثل هدر get post باشه
     
  6. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    نه نگاه کنین , مثلا اینجا : http://tinypic.com .

    خوب ؟ وسطش یه فرم آپلود هست , من می خوام یه فرم مثل همین رو یه سایت خودم بذارم و وقتی کاربر فایل رو انتخاب کرد و Submit رو زد با cURL من یه جوری اون فایل رو تو فرم TinyPic هم Submit کنم . متوجه شدین ؟ نمی خوام از iNline frame و Javascript استفاده کنم چون سایتی که من می خوام الان روش فایل بفرستم نیاز به لوگین داره . فکر کنم تنها راهش cUrl یا Header هست که من سر کدی بتونه فایل رو بفرسته گیر کردم .
     
  7. artin

    artin کاربر تازه وارد

    تاریخ عضویت:
    ‏19 می 2004
    نوشته ها:
    2,112
    تشکر شده:
    2
  8. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    متاسفانه اونجا هم رو قبلا دیدم , مثال اش برای FTP هست .
     
  9. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    اهان این رو ببین جواب می ده الان هدرش یادم نیست
    PHP libCurl for http multipart-form upload



    PHP:
    $url "http://test/testrcv.php"
    $logo.gif "logo.gif"
    $sendvars['fname'] = "John"
    $sendvars['lname'] = "Smith"
    $sendvars['upfile'] = "@$logo"
    $enc=array(); 
    foreach(
    $sendvars as $key=>$value
    $enc[]=urlencode($key)."=".urlencode($value); 
    $ch=curl_init($url); 
    curl_setopt($ch,CURLOPT_HEADER,0); 
    curl_setopt($ch,CURLOPT_VERBOSE,0); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_POST,1); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,implode("&",$enc)); 
    $result curl_exec($ch); 
    curl_close($ch);
     
  10. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    خوب یکم در مورد این توضیح می دی hba :

    مثلا فرض کن الان من بخوام فایل :sample.wmv رو با این به upload.php بفرستم ,

    راستش الان من یه فایل به اسم : logo.gif تو فولدری که این کد رو توش گذاشته بودم گذاشتم و فرستادمش به یه فایل sample و از اون خواستم خروجی سایز آپلود شده رو بگیرم ولی چیزی بهم نداد .

    اول اینکه به این خط ایراد می گرفت :

    PHP:
    $logo.gif "logo.gif";  

    Parse error: parse error, unexpected '=' in D:\Program Files\xampp\htdocs\o\curl\Untitled-5.php on line 4

    که من اینجوریش کردم :

    PHP:
    $logo "logo.gif"

    خوب حالا کد شما اینه :

    PHP:
    $url "http://localhost/o/curl/upload.php"
    $logo "logo.gif"
    $sendvars['fname'] = "John"
    $sendvars['lname'] = "Smith"
    $sendvars['upfile'] = "@$logo"
    $enc=array(); 
    foreach(
    $sendvars as $key=>$value
    $enc[]=urlencode($key)."=".urlencode($value); 
    $ch=curl_init($url); 
    curl_setopt($ch,CURLOPT_HEADER,0); 
    curl_setopt($ch,CURLOPT_VERBOSE,0); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_POST,1); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,implode("&",$enc)); 
    $result curl_exec($ch); 
    curl_close($ch);  

    من یه فایل : logo.gif رو گذاشتم رو تو فولدر همسان کد شما .


    کدی که تو upload.php هم هست اینه :

    PHP:
    $handle fopen("size.txt"'a+');
    fwrite($handle"Size=".$_FILES['upfile']['size']);

    ولی این size رو به من نمی ده . یعنی فایل براش فرستاده نمی شه .

    همین موضوع من رو گیج کرده چون قبلا هم یه همچین چیزی رو نوشتم . [​IMG]
     
  11. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    راستش من همین الان رو کامپیوترم curl ندارم نمی تونم تست کنم قبلا از این استفاده می کردم شاید اشتباه کرده باشم
    وایسا میریزم می گم
     
  12. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    OK , من منتظرم اگه بتونیم این کار رو کنیم خیلی می شه ازش تو جاهای مختلف استفاده کرد .
     
  13. avajang.com .leftjee.ir.right
  14. shankimout

    shankimout Registered User

    تاریخ عضویت:
    ‏17 می 2004
    نوشته ها:
    1,491
    تشکر شده:
    3
    محل سکونت:
    ساری . . . . . . . . . . . . . . Permanently Bann
    اینم به مناسبت سال نو . یه حالی به نندوک و بچه های برنامه نویس


    اینترفیس کلی یک درخواست http به این صورته :

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

    کد:
     
    POST /upload.php HTTP/1.1
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, */*
    Accept-Language: en-us
    Content-Type: multipart/form-data; boundary=---------------------------7d61f4180376
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    Host: localhost:801
    Content-Length: 353
    Connection: Keep-Alive
    Cache-Control: no-cache
    Cookie: lastvisit = 325t345;
     
     
    -----------------------------7d61f4180376
    Content-Disposition: form-data; name="fileaa"; filename="G:\Documents and Settings\Ebrahim\My Documents\ghfh.txt"
    Content-Type: text/plain
     
    filedata ( orginal contents )
     
    -----------------------------7d61f4180376--
     
    
     
  15. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    مرسی , مرسی , من این رو ندیده بودم . ممنون . [​IMG]
     
  16. shankimout

    shankimout Registered User

    تاریخ عضویت:
    ‏17 می 2004
    نوشته ها:
    1,491
    تشکر شده:
    3
    محل سکونت:
    ساری . . . . . . . . . . . . . . Permanently Bann
    به خط سوم هم توجه بکن . برای فرستادن فایل مهمه . توی این rfc هم به طور کامل توضیح داده http://www.faqs.org/rfcs/rfc2616
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانی