【问题标题】:PHP: upload (POST) file to /dev/nullPHP:上传(POST)文件到/dev/null
【发布时间】:2023-01-12 12:01:54
【问题描述】:

使用 PHP,我想将文件直接发布到/dev/null, 无需写入磁盘。我有这个 upload.php,它基本上将文件从/tmp/yyXXXx/tmp/repos目录,但我想直接把它放到/dev/null.

可以将 $_FILES['userfile']['tmp_name'] 设置或覆盖为/dev/null? 另外,我尝试设置上传文件路径/dev/null在 php.ini 文件中。

    ?php
$uldir = '/tmp/repos/';
$ulfile = $uldir . basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $ulfile)) {
    echo "Uploaded successfully.\n";
} else {
    echo "Could not upload file!\n";
}

?>

【问题讨论】:

    标签: php post file-upload upload


    【解决方案1】:

    详细解释,

    • 很遗憾,无法直接将文件发布到/dev/null而不将其写入磁盘。这/dev/nullfile 是一个特殊的文件,它会丢弃所有写入其中的数据。但是,它不能作为目标移动上传文件()函数或任何其他类似函数,因为它不接受数据作为输入,所以它仅用于丢弃数据。
    • 您可以改为在/tmp directory,将上传的文件移动到其中,完成后立即将其删除。 以下是如何执行此操作的示例:
    $temp_file = tempnam('/tmp', 'drop');
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $temp_file)) {
        echo "Uploaded successfully.
    ";
        unlink($temp_file);
    } else {
        echo "Could not upload file!
    ";
    }
    
    • 通过使用临时名称()函数,您在 /tmp 目录中创建一个具有唯一名称的唯一文件。然后,取消链接()用于删除文件。
    • 请务必记住,这只是一个如何丢弃文件的示例,您可能需要确保代码符合您的要求和安全措施。
    • 另请注意,而不是移动上传文件函数你可以直接使用 unlink 函数来删除它,如果这是你的意图。

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 2017-08-07
      • 1970-01-01
      • 2015-08-17
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      相关资源
      最近更新 更多