PHP получает файл и помещает его в папку

Я разрабатываю онлайн базу данных фотографий (с php и mysql), и у меня есть функция загрузки и функция загрузки. Функция загрузки работает как шарм, также нетрудно скачать файл с сервера.

Мне просто интересно, можно ли (в php) получить файл, но не с помощью обычной HTML-формы, где вы выбираете файл.

НАПРИМЕР. Если я хочу загрузить файл «Photo.png», программа преобразует изображение в строку base64, а затем отправляет его в скрипт php save.php? Base = [BASE64]&&имя файла = [имя_файла]

Как мне заставить скрипт преобразовать эту строку в Photo.png и затем сохранить ее в папке / img /?

Заранее спасибо,
Каспар.

0

Решение

Это было бы так же просто, как

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

прежде чем вы сможете проверить, существуют ли эти ключи и они не пусты, а также вам не нужно дважды & в URL

2

Другие решения

Некоторая информация, чтобы помочь вам:

  1. Да, вы действительно можете получать данные в любой форме и делать с ними все, что захотите. В вашем примере вы можете отправить фотографию в кодировке base64 в строке запроса и использовать base64_decode($_REQUEST['base']) или же base64_decode($_GET['base']) чтобы получить на это.

ПРЕДУПРЕЖДЕНИЕ. В прошлом многие веб-серверы накладывали ограничения на размер строки запроса, которую он будет обрабатывать — хотя и не уверен, что в наши дни это так же важно. Проверьте веб-сервер, который вы будете использовать, чтобы убедиться, что он в порядке. Вы можете рассмотреть возможность отправки файла через POST, и в этом случае вам даже не обязательно кодировать его в base64.

  1. Я заметил, что вы отправляете имя файла как часть строки запроса. Если вы используете это, БУДЬТЕ ОЧЕНЬ ОСТОРОЖНЫ, ЧТОБЫ САНИТИЗИРОВАТЬ ЕГО ПЕРВЫЙ. Убедитесь, что в нем нет косой черты или других специальных символов, чтобы кто-то не мог произвольно сохранить двоичный файл в любом месте на вашем сервере. Многие PHP-фреймворки могут обработать это для вас из коробки, или проверьте этот для более простых вариантов фильтрации PHP, которые вы можете использовать: очиститель строки для имени файла
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector