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