【问题标题】:receiving binary file sent through CURL接收通过 CURL 发送的二进制文件
【发布时间】:2016-06-22 06:10:42
【问题描述】:

我要做的是保存通过 CURL 从另一台服务器发送的二进制文件。

我的php上传器是:

<?php
define("UPLOAD_DIR", "/tmp/");

if (!empty($_FILES["myFile"])) {
    $myFile = $_FILES["myFile"];

    if ($myFile["error"] !== UPLOAD_ERR_OK) {
        echo "<p>An error occurred.</p>";
        exit;
    }

    // ensure a safe filename
    $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);

    // don't overwrite an existing file
    $i = 0;
    $parts = pathinfo($name);
    while (file_exists(UPLOAD_DIR . $name)) {
        $i++;
        $name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
    }

    // preserve file from temporary directory
    $success = move_uploaded_file($myFile["tmp_name"],
        UPLOAD_DIR . $name);
    if (!$success) { 
        echo "<p>Unable to save file.</p>";
        exit;
    }

    // set proper permissions on the new file
    chmod(UPLOAD_DIR . $name, 0644);
}

所以我在我的网站上有这个:

example.com/uploader.php

在 2 号服务器上,我运行命令:

curl --request POST  --data-binary "@binary.jpg"  http://example.com/uploader.php

然后我检查我的 /tmp/ 文件夹中是否有名为 binary.jpg 的文件,但它不存在,这是什么问题?

谢谢。

【问题讨论】:

  • @NicolasBouvrette No.
  • 你可以试试那篇文章中建议的 curl 命令,看看你的上传器是否有效?
  • @NicolasBouvrette 它不起作用。
  • 您能否尝试将您上传的 PHP 代码替换为此处的第一个示例,看看您在尝试上传时是否遇到任何错误? :php.net/manual/en/features.file-upload.php(复制/粘贴示例,获得 221 票)- 这可能是 PHP 设置在欺骗您。

标签: php linux file curl


【解决方案1】:

它可能在您运行 curl 命令的位置。例如,如果您在 /home/student 然后运行二进制文件。 Jpg 位于 /home/student/binary 位置。 JPG 运行 curl 命令后,您是否收到成功传输消息?

【讨论】:

    【解决方案2】:

    在代码if (!empty($_FILES["myFile"])) { 中,您正在专门检查数组$_FILES 中名为myFile 的字段,然后进行处理。虽然curl 命令不建议使用名称myFile 发送二进制文件。您可以在 curl 命令中指定 POST 字段的名称,希望问题得到解决。 (也可以尝试在代码中打印整个 $_POST$_FILES 数组以进行调试)

    【讨论】:

    • 那会是怎样的呢?像这样? curl --request POST --data-binary "myFile=@binary.jpg" example.com/uploader.php
    • 我做了 curl --request POST --data-binary myFile@binary.jpg example.com/uploader.php ,没有结果。这太令人沮丧了,一定是那么简单?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多