1

我有一个问题,我想将文件远程上传到文件工厂,...我成功登录并转到上传页面,但是当我发布字段时出现错误:“未发送文件数据”。有人可以帮忙吗...?

我的代码:

//user data
$email="somebody@yahoo.com";
$pass="somepass";
$cookie="cookie.txt";
//url data
$host="http://www.filefactory.com";
$logURL="http://www.filefactory.com/member/login.php";
//postdata
$logPOST="email=".urlencode($email)."&password=".urlencode($pass);
//login
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $logURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $logPOST);

curl_exec($ch);
curl_close($ch);
//go to uploads section
$uploadRefferer="http://www.filefactory.com/u/local/?login=1";
$uploadURL="http://upload.filefactory.com/upload.php";
$filename="@test.png";
//try to upload file
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $uploadURL);
curl_setopt($ch, CURLOPT_REFERER, $uploadRefferer);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,ALL FIELDS THAT I NEED);
curl_exec($ch);

文件 test.php 位于带有 cookie 和 index.php 的 samo 文件夹中(运行这个)...尝试在 localhost、服务器上,但不工作。

4

1 回答 1

0

这将完成工作:

curl_setopt($ch, CURLOPT_POSTFIELDS, Array(
   'redirect' => 1,
   'saveTo' => 0,
   'file' => $filename
));
于 2012-08-20T17:26:02.297 回答