Я в основном работаю в C#, но унаследовал php / laravel приложение, которое работает довольно хорошо. Это работает в течение достаточно долгого времени, и я никогда не сталкивался с этой проблемой. Сегодня около 11 утра наш сайт больше не загружает изображения / стандартные документы.
Мы работаем в среде windows с установленным IIS и PHP. У нас есть код, который позволяет загружать, скажем, изображение и хранить некоторую дополнительную информацию. PHP / Laravel (даже проверил журналы IIS, просмотрщик событий и журналы laravel) и ошибки не происходит. Наше приложение просто пытается загрузить файл. В конце концов наш экран просто обновляется и документ или файл не загружается. Если я попробую этот же тест локально на моем компьютере (так как мы его разработали), он будет работать нормально, и загрузка произойдет.
Я знаю, что необходимо обеспечить разрешения для расположения файла, но, как я уже сказал, это работает нормально за последние полтора года. Поскольку сайт не имеет доступа, мы используем учетную запись IUSR, и этому пользователю предоставляются правильные разрешения для соответствующих каталогов (каталогов, в которых мы храним документы или файлы изображений). Я также позаботился о том, чтобы обновления windows не вызывали эту проблему, однако последнее обновление windows было в 1/24, и наш сайт работал нормально в этот день вплоть до 28 числа этого месяца.
Код для Пример выглядит следующим образом:
// Audit Documents: Label Image
if ($request->hasFile('audit_label_image')) {
$document = new Document();
$document->title = 'Document for Audit with id ' . $audit->audit_id;
$document->filetype = $request->audit_label_image->extension();
$document->save();
$audit_document = new AuditDocument();
$audit_document->audit_id = $audit->audit_id;
$audit_document->document_id = $document->document_id;
$audit_document->type_id = 63; // "Label Image" document type
$audit_document->save();
$request->audit_label_image->storeAs('audit', $document->document_id . '.' . $request->audit_label_image->extension() );
}
Наше приложение имеет основную запись, которая сохраняется (аудит), а затем отправляется для сохранения других объектов, связанных с аудитом. Это документ, и затем мы сохраняем ссылку этого аудита на документ (отсюда объект выше AuditDocument
). Когда мы нажимаем кнопку «Сохранить» в нашем пользовательском интерфейсе, он вращается, как будто пытается сохранить изображение / документ. Никаких ошибок консоли или сетевых ошибок ... он, наконец, обновляет экран только для того, чтобы сохранить фактический объект "Audit" в нашей таблице аудита (сервер sql), однако документ, документ аудита и изображение (физический файл) не сохраняются Я даже попытался написать небольшой тест, чтобы загрузить файл, и мы ничего не получили.
Я не знаю, получает ли он ошибку HTTP 500 (так как никаких ошибок нам не дано). Как уже упоминалось, все это недавно перестало работать, но мы не внесли изменения в код, чтобы вызвать это. Не знаете, где еще я могу посмотреть или какие-либо указатели на стороне php / laravel, которые могли бы мне помочь?
Обновление
Любая из наших форм с enctype="multipart/form-data"
вызывает Эта проблема. В ту минуту, когда мы удаляем эту строку, все работает, но, конечно, файл не публикуется. Кто-нибудь еще работает на IIS с PHP / Laravel, который сталкивался с этой проблемой в прошлом? Мы дали права на IUSR, IIS_USERS, IIS_WPG, NETWORK, SYSTEM, AUTHENTICATED USERS, так что разрешения должны быть в порядке ...