PHP cURL文件上传到网站

时间:2015-08-21 19:23:10

标签: php curl

您好我在将文件上传到网站时遇到问题,我已经检查过这些元素并将它们添加到$ data文件中,我对此很新,所以请指导我。

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);

1 个答案:

答案 0 :(得分:2)

您是否在实时域名上试过这个?一切似乎都在形状,可能是本地php.ini,filesize或您的操作系统(具有安全性)的问题。

尝试实时(子)域。

要设置最大文件大小,请尝试

<?php
ini_set('upload_max_filesize', '40M');
ini_set('post_max_size',       '40M');
?>

显然,将值设置为您需要的值。

使用您的上传页面,您是否尝试过记录所有POST,GET,FILES变量?

我在调试时所做的事情以及不想工作的事情是:

<?php
$f = fopen("access.log", "a+");
$data = print_r($_REQUEST,1);
fwrite($f, $data);
fclose($f);
?>

与$ _FILES相同。如果有一个包含该信息的访问日志,我知道正在访问该页面,所有内容都已发送但我处理错误。

如果没有文件,那么很明显,页面没有到达。

希望这有帮助

标记