برگزیده های پرشین تولز

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

nendoke

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

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



مرسی .
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از nendoke :
سلام :) , بچه ها کسی می دونه چه جوری می شه با cUrl یه فایل رو روی یه هاست دیگه آپلود کرد ؟

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



مرسی .
من با socket به پورت ftp وصل میشم و این کارو میکنم
با curl دنبالش نرفتم
اگه میخوای یه کد بذارم اینجا ؟
 

nendoke

کاربر تازه وارد
تاریخ عضویت
31 آگوست 2003
نوشته‌ها
425
لایک‌ها
9
سن
38
محل سکونت
Some Where in Moon !
به نقل از Parsa_361 :
من با socket به پورت ftp وصل میشم و این کارو میکنم
با curl دنبالش نرفتم
اگه میخوای یه کد بذارم اینجا ؟
نه مشکل اینه که من دست رسی FTP ندارم , فرض کنین می خواین یه Form Upload رو تو یه صفحه Submit کنین , من تمام متغیر و Field ها رو می تونم با CURL و به شیوه POST بفرستم ولی فایل رو موندم چه جوری تحت Form بفرستم رو سرور اونجا .
 

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-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";
}
?>
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
با header میتونی فایل بفرستی . رفرنسشو پیدا میکنم میزارم اینجا . فک کنم مثل هدر get post باشه
 

nendoke

کاربر تازه وارد
تاریخ عضویت
31 آگوست 2003
نوشته‌ها
425
لایک‌ها
9
سن
38
محل سکونت
Some Where in Moon !
نه نگاه کنین , مثلا اینجا : http://tinypic.com .

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

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-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);
 

nendoke

کاربر تازه وارد
تاریخ عضویت
31 آگوست 2003
نوشته‌ها
425
لایک‌ها
9
سن
38
محل سکونت
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 رو به من نمی ده . یعنی فایل براش فرستاده نمی شه .

همین موضوع من رو گیج کرده چون قبلا هم یه همچین چیزی رو نوشتم .
33.gif
 

hba

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

nendoke

کاربر تازه وارد
تاریخ عضویت
31 آگوست 2003
نوشته‌ها
425
لایک‌ها
9
سن
38
محل سکونت
Some Where in Moon !
به نقل از hba :
راستش من همین الان رو کامپیوترم curl ندارم نمی تونم تست کنم قبلا از این استفاده می کردم شاید اشتباه کرده باشم
وایسا میریزم می گم
OK , من منتظرم اگه بتونیم این کار رو کنیم خیلی می شه ازش تو جاهای مختلف استفاده کرد .
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
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--
 
بالا