【问题标题】:PHP POST a file via AnonFiles with html formPHP 通过 AnonFiles 以 html 形式发布文件
【发布时间】:2018-09-15 15:22:26
【问题描述】:

我看到 AnonFiles 允许用户使用他们的 API 将文件直接上传到他的帐户:https://anonfiles.com/docs/api

我创建了一个帐户,他们给了我一个 API 密钥,我可以通过在上传请求中附加例如 ?token=c9516efd61XXXXXX 来直接上传到我的帐户。

我现在想要一个带有 PHP 代码的简单表单,它允许我选择一个文件并将其上传到我的 anonfiles 帐户。

这是我的代码,请您指出我做错了什么,当我点击发送时,我没有收到来自 anonfiles 的回复。

    if(isset($_POST['submit']))
        {
            $attachment = chunk_split(base64_encode(file_get_contents($_FILES['file']['tmp_name'])));
            $filename = $_FILES['file']['name'];

            $url = 'https://anonfiles.com/api/upload?token=c9516efd61XXXXXX;
            $myvars = 'myvar1=' . $attachment . '&myvar2=' . $filename;

            $ch = curl_init( $url );
            curl_setopt( $ch, CURLOPT_POST, 1);
            curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
            curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt( $ch, CURLOPT_HEADER, 0);
            curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

            $response = curl_exec( $ch );

            echo $response;
        }



<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<p><br /><label for="file"><span class="fs20"><span class="ff1 cf0" style="color:black;">File:              </span></span></label> <input type="file" name="file" id="file"></p>
<p><br /><input type="submit" name="submit" id="submit" value="Send"></p>
</form>

【问题讨论】:

  • 您已经提到,当您对数据进行硬编码并进行测试时,它会起作用。您能否也分享该代码,以便我们为您制定适当的解决方案
  • 首先,您忘记完成第 6-7 行的报价,因此您的 php 代码将无法执行,它应该只会在您尝试时向您的 php 错误日志发送解析器错误运行它

标签: php curl post


【解决方案1】:

Anonfiles 支持在这种情况下有所帮助,代码如下:

if (isset($_POST['submit'])) {

    $url = sprintf('https://anonfile.com/api/upload?token=%s', $token);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, [
        'file' => curl_file_create(
            $_FILES['file']['tmp_name'],
            $_FILES['file']['type'],
            $_FILES['file']['name']
        ),
    ]);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $json = curl_exec($ch);

    curl_close($ch);

    $result = json_decode($json);

    if (is_object($result) && $result->status) {
        echo "<p>OK!</p>";
    } else {
        echo "<p>Error uploading file.</p>";
    }
}

    echo '
    <form action="' . $_SERVER['PHP_SELF'] . '" method="post" enctype="multipart/form-data">
        <p>
            <br/>
            <label for="file">
                <span class="fs20">
                    <span class="ff1 cf0" style="color:black;">File:              </span>
                </span>
            </label>
            <input type="file" name="file" id="file">
        </p>
        <p>
            <br/>
            <input type="submit" name="submit" id="submit" value="Send">
        </p>
    </form>
  ';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多