如何在表单提交时对$_FILES文件进行base64编码?

13

如何通过表单 POST 将文件从一个页面发送到另一个页面并将其进行 base64 编码。

以下方法均不起作用:

  • base64_encode($_FILES['file'])
  • base64_encode(file_get_contents($_FILES['file']))
  • base64_encode(file_get_contents($_FILES['file']['name']))

为什么它们不起作用?

正确的做法是什么,才能对文件进行 base64 编码?


@Quasimodo的克隆体,用于检查上传的文件是否与数据库中的任何其他文件匹配。 - Constant
@Quasimodo的克隆,我不明白。 - Constant
2
你应该查看$_FILES['file']['tmp_name'],假设你的表单字段名为“file”。 - Pinke Helga
我会将其未编码地存储为BLOB,以节省存储空间。 - Pinke Helga
1
var_dump($_FILES); - Pinke Helga
显示剩余2条评论
1个回答

10

tmp_name是被临时存储的文件的文件路径

base64_encode(file_get_contents($_FILES['file']['tmp_name']))

我尝试了,但出现了这个警告:Warning: file_get_contents(C:\Bitnami\wampstack-7.0.0RC7-\php\tmp\php7BFA.tmp): failed to open stream: No such file or directory in C:\Bitnami\wampstack-7.0.0RC7-\apache2\htdocs\classupload.php on line 86 - Constant
@Titoxdboss 你有考虑根据自己的需求进行适应,还是只是从网上复制粘贴1:1?变量命名,检查是否存在等。 - Pinke Helga
@Quasimodo的克隆,我不明白。 - Constant
@Titoxdboss 尝试移动文件,然后加密它。使用 move_uploaded_file($_FILES["file"]["tmp_name"], '::更改为Apache可以写入的可写目录::')。 - PHPDave
为了使这个回答更好,您可以在描述中更加详细地说明数组键是什么,为什么不复制文件会丢失文件,以及$_FILES到底是什么... - Pinke Helga
@Quasimodo的克隆体 像什么? - Constant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接