PHP cURL文件上传到网站
Hello I'm having problems uploading a file to the site bellow, I have inspected the elements and added them to the $data file, I'm fairly new to this, so please guide me.
function upload($url,$data)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/xampp/htdocs/curl_upload/cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "C:/xampp/htdocs/curl_upload/cookies.txt");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 1000);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$data = array("file_0"=>"@C:\files\somerarfile.rar","submit_btn"=>" Upload! ");
echo upload("http://180upload.com/",$data);
Have you tried this on a live domain? Everything appears to be in shape, maybe there's a problem with the local php.ini, filesize or your operating system (with its security).
Try on a live (sub)domain.
To set you max filesize, try
<?php
ini_set('upload_max_filesize', '40M');
ini_set('post_max_size', '40M');
?>
Obviously, set the values to whatever you need.
With your upload page, have you tried logging all the POST, GET, FILES variables?
What I do when I'm debugging and something doesn't want to work is:
<?php
$f = fopen("access.log", "a+");
$data = print_r($_REQUEST,1);
fwrite($f, $data);
fclose($f);
?>
Same with $_FILES. If there's an access log with the information, I know the page is being reached, everything is being sent but I'm handling it wrong.
If there's no file then, obviously, the page isn't getting reached.
Hope this helps
Mark