Вот сценарий. У меня есть два запроса: один для загрузки изображения, а другой для обработки загруженного изображения. Выполнение проверки file_exists()
позволяет мне узнать, существует ли файл или нет. Но проблема возникает, когда я нажимаю второй запрос (для обработки изображения) еще до того, как файл будет полностью загружен. Поправьте меня, если я ошибаюсь, file_exists()
возвращает true
, потому что даже при загрузке одного байта файл создается, даже если данные изображения загружены не полностью, и это создает проблемы при дальнейшей обработке. изображение.
Одним из решений является контрольная сумма на стороне клиента, которую я проверяю, чтобы узнать, загружен ли файл или нет.
Я хотел бы знать, можно ли выполнить эту проверку только на PHP?
Я пробовал использовать PHP Imagick
, например
try {
$imageMagickCheck = new Imagick($filename);
} catch (Exception $exc) {
$error = $exc->getMessage();
file_put_contents("/tmp/corruption.log", $error."\n",FILE_APPEND);
$imageMagickCheck = FALSE;
}
Приведенный выше код дает исключение, если я вручную удаляю двоичные данные изображения через. текстовый редактор, а затем вставьте этот файл в код. Итак, я подумал, что он должен распознавать, полностью ли загружено изображение или нет. Но я не видел никаких исключений в этом. Я не уверен, почему. Я где-то читал, что мы можем сделать что-то подобное с createimagefromjpg()
.
Был бы очень признателен, если бы кто-то хороший дал мне четкое представление об этом.
Процедура загрузки изображения
Загрузка изображения происходит в два этапа. По сути, сервер обработки изображений представляет собой сервер Lua-Openresty
, и у нас есть оболочка для него, написанная на PHP. Клиент загружает изображение как загрузку составной формы, которую я получаю в массиве $_FILES
в оболочке PHP. Затем я загружаю этот файл на сервер Lua, используя cURL
. Lua снова сохраняет этот файл в соответствующем каталоге. И PHP Wrapper, и сервер openresty используют одну и ту же файловую систему. Имеет смысл не отправлять файл на lua, а сохранять файл через сам PHP(что я и планирую сделать), но и тогда проблема остается.
$_FILES
. Следующий этап — загрузка файла на сервер Lua с использованием PHP Curl. Я включу это подробно в вопрос. - person Parthapratim Neog   schedule 14.10.2016