Я уже ищу этот вопрос в интернете и на этом форуме, но не вижу ответов на этот вопрос.
Вопрос в том Как загрузить файлы с помощью микро-фреймворка flightphp с помощью DropZonejs или других.
У меня есть код:
DropZone:
<form action="/admin/upload" method="put" class="dropzone">
<div class="fallback">
<input name="id" type="file" multiple />
</div>
PHP:
function upload() {
$uploaddir = $_SERVER['DOCUMENT_ROOT'] . '/tmp/';
$uploadfile = $uploaddir . '1.jpg';
//move_uploaded_file(json_encode(Flight::request()->getBody()), $uploadfile);
echo json_encode(file_put_contents($uploadfile, Flight::request()->getBody()));
}
Flight::route('POST /admin/upload', 'upload');
Я тоже использовал этот пример, но у меня ошибка с ‘$ _FILES [‘ userfile ‘]’:
function upload_admin() {
if(preg_match("/(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$/", $_FILES['userfile']['name']))
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "OK";
}
}
}
Flight::route('/admin/upload', 'upload_admin');
После выполнения всех этих операций у меня есть null
результат.
Например, я перетаскиваю какой-то файл в DropZone. DZ запрос / admin / upload /. Это работает, но в конце концов у меня есть 1.jpg с null
размер.
Результат загрузки
Спасибо всем.
UPD: Хм, может быть, проблема в dropzonejs? Я пытаюсь загрузить скрипт php без flightphp, и он тоже не загружает файлы с помощью dropzone.
Вы не можете получить файлы с помощью метода getBody () в Flight Framework. Вы можете сделать это как
Flight::route('POST /admin/upload', function(){
$request = Flight::request();
$file = $request->files['id']; // (id) which is your html element name
});
$ файл переменная содержит некоторые свойства, как вы знаете, когда вы var_dump () Это.
array(5) {
["name"]=>
string(14) "test_image.jpg"["type"]=>
string(10) "image/jpeg"["tmp_name"]=>
string(14) "/tmp/php6cpnDa"["error"]=>
int(0)
["size"]=>
int(18101)
}
Других решений пока нет …