使用PHP CURL上传文件 - 文件丢失

时间:2014-09-05 18:50:15

标签: php curl upload

我正在测试使用cURL上传文件的可能性。 服务器的版本是PHP 5.4

从'发送'上传服务器我使用此代码:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label> <input type="file" name="Filedata" id="Filedata" /> 
    <br />
    <input type="submit" name="submit" value="Submit" />
</form>

<?php

if ($_POST['submit']) {


  $real_name = $_FILES['Filedata']['name'];

    $ch = curl_init();

    $data = array('name' => 'test.txt', 'file' => '@'.$real_name);

    curl_setopt($ch, CURLOPT_URL, 'http://www.site1.com/upload_remote.php');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

  curl_exec($ch);
    curl_close($ch);

我使用print_r($ data)看到$ data数组,一切似乎都没问题。

在&#39;遥控器&#39;服务器(地址:http://www.site1.com/upload_remote.php)我有这段代码:

$file = 'test2.txt'

    if(move_uploaded_file($_FILES['file']['tmp_name'], $file)) {

        echo "The file ".  basename( $_FILES['file']['name']). " has been uploaded";

  }

但文件不存在 error_logs文件没有错误。 我忘了什么吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

move_uploaded_file的第二个参数是应该移动文件的目标路径,而你只是传递$ file而不是目录。

Docs