PHP接收文件并将其放在文件夹中

时间:2018-12-17 17:51:50

标签: php file upload

我正在开发一个在线照片数据库(使用php和mysql),并且具有下载功能和上传功能。下载功能就像一个咒语,从服务器下载文件也不难。

我只是想知道是否有可能(在php中)接收文件,但不能用通常的html格式来选择文件。

E.G。如果我要上传文件“ Photo.png”,该软件会将图像转换为base64字符串,然后将其发送到php脚本save.php?base = [BASE64] && filename = [FILENAME]

我如何使脚本将该字符串转换为Photo.png,然后将其保存到文件夹/ img /中?

预先感谢您, 卡斯帕。

2 个答案:

答案 0 :(得分:2)

就这么简单

$data = base64_decode($_GET['base']);
file_put_contents($_GET['filename'], $data)

在您可以检查这些键是否存在以及它们是否为空以及是否不需要url中的双&之前,

答案 1 :(得分:1)

一些帮助您的信息:

  1. 是的,您确实可以接收任何形式的数据并按照您的意愿进行处理。在您的示例中,您可以发送以base64编码的查询字符串照片,并使用base64_decode($_REQUEST['base'])base64_decode($_GET['base'])进行获取。

注意:过去,许多Web服务器都限制了它将要处理的查询字符串的大小-尽管不确定这几天是否引起了很大的关注。检查您将使用的Web服务器,以确认一切正常。您可能要考虑通过POST发送文件,在这种情况下,您甚至不一定需要使用base64对其进行编码。

  1. 我注意到您正在将文件名作为查询字符串的一部分发送。如果您使用它,请务必先对其进行消毒。检查并确保它没有正斜杠或其他特殊字符,以使某人无法在您的服务器上的任何位置随意保存二进制文件。许多PHP框架都可以为您提供开箱即用的解决方案,或者查看该框架以获得更多可以使用的直接PHP过滤选项:string sanitizer for filename