У меня есть скрипт PHP, вызываемый с помощью Javascript AJAX. Это простой скрипт для сохранения файла на сервере. Это POST-запрос с «image», который является ключом загруженного файла.
Когда мой inte rnet работает медленно (загрузка около 50 ko / s), я заметил, что скрипт php не может скопировать файл. Я получаю 400 и тело ответа "некоторые проблемы с загрузкой" (см. Код ниже). Часть Javascript в порядке, webtools (и время загрузки) показывают, что это действительно POST-запрос и файл отправляется на сервер.
Как скорость соединения может повлиять на результат is_uploaded_file($_FILES['image']['tmp_name'])
? Есть ли скрытый тайм-аут загрузки, по которому я не смог найти документацию?
Сокращенный код:
<?php
// bad request if not POST with 'auth' and 'image'
if($_SERVER['REQUEST_METHOD'] !== 'POST' || !array_key_exists('image', $_FILES))
{
http_response_code(400);
exit();
}
// added after noticing issues with move_uploaded_file, to help debugging
// how can this fail?
if(!is_uploaded_file($_FILES['image']['tmp_name']))
{
http_response_code(400);
echo('some upload issue');
exit();
}
$filePath = 'uploads/test';
// save upload and print link
if(!move_uploaded_file($_FILES['image']['tmp_name'], $filePath))
{
http_response_code(500);
exit();
}
http_response_code(200);
echo('https://example.com/' . $filePath);
Фактический код примерно в два раза длиннее, я удалил аутентификацию и нашел $ Filepath.