【问题标题】:Upload file binary data into variable将文件二进制数据上传到变量中
【发布时间】:2015-03-05 07:22:28
【问题描述】:

我正在寻找一种允许文件上传的方法,但不是将文件写入网络服务器上的磁盘,而是将二进制内容存储在变量中。我找到了一个实际执行上传的简单示例,但我找不到阻止写入文件并将其保存在内存中的方法。

是否有可能做到这一点,如果可以,怎么做?

<?php

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo "<p>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n";
} else {
   echo "Upload failed";
}

echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";

?>

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

【问题讨论】:

    标签: php memory file-upload image-uploading tmp


    【解决方案1】:

    如果您只需要上传的文件用于 php 运行时,那么

    $uploadfile = file_get_contents($_FILES['userfile']['tmp_name']);
    

    稍后如果您需要将其存储在 MySQL DB 中,您可以随时对其执行“addslashes()”。

    【讨论】:

    • 如果您要访问数据库,请使用准备好的语句!或者至少使用mysql_real_escape_string 简单地依靠addslashes 不会削减它。
    猜你喜欢
    • 2018-10-04
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 2015-11-30
    相关资源
    最近更新 更多