Если клиент не может приложить фотографии к заявке на возврат, поддержка получает неполные обращения, возврат затягивается, а клиенту приходится писать повторно.

Нужно проверить весь путь файла: выбор на устройстве, frontend-валидация, отправка формы, лимиты сервера, сохранение в uploads и привязка фото к заявке.

Коротко: что сделать

  • Проверить загрузку фото с телефона и компьютера
  • Проверить лимиты размера файла и количества фото
  • Проверить MIME-типы и расширения
  • Проверить права папки uploads
  • Проверить, привязываются ли файлы к заявке возврата

Основные причины

У проблемы может быть несколько уровней: интерфейс, backend, права, внешняя интеграция, кэш, очередь задач или настройки сервера. Поэтому лучше не гадать, а пройти цепочку от действия пользователя до записи в логах и базе.

  • Размер фото с телефона превышает лимит PHP или nginx
  • Форма принимает только часть MIME-типов
  • Ajax-загрузка падает без сообщения
  • Папка uploads недоступна для записи
  • Заявка создается, но файлы не связываются с ее ID

Пошаговая диагностика

Диагностику удобнее вести на одном воспроизводимом примере: один пользователь, один заказ, один запрос, один файл или одно событие. Так проще отделить реальную причину от случайных совпадений.

  • Открыть Network при отправке фото
  • Проверить error_log на upload_max_filesize и post_max_size
  • Проверить сохранение файла в директории
  • Проверить запись файла в базе
  • Проверить мобильный Safari и Android Chrome отдельно

Как исправить проблему

Исправление должно закрывать первопричину. Если затронуты платежи, доступы, персональные данные, уведомления или рабочие заказы, сначала проверьте решение на тестовом сценарии и сохраните возможность отката.

  • Увеличить разумные лимиты загрузки
  • Добавить сжатие изображений на клиенте или сервере
  • Разрешить корректные MIME-типы фото
  • Исправить права uploads и временной папки
  • Добавить понятное сообщение об ошибке загрузки

Безопасный план решения

Не разрешайте любые файлы без проверки. Фото возврата должны проходить проверку типа, размера и имени, а храниться отдельно от исполняемого кода.

Чего не стоит делать

  • Не принимать произвольные файлы как изображения
  • Не показывать пользователю техническую 500 ошибку
  • Не хранить загруженные файлы в папке с PHP-кодом
  • Не терять заявку, если одно фото не загрузилось

Что подготовить перед исправлением

  • URL формы возврата
  • Пример фото и его размер
  • Скрин ошибки клиента
  • Настройки PHP/nginx лимитов
  • Где хранятся файлы заявки

FAQ

Почему с компьютера фото грузится, а с телефона нет?

Телефон может делать большие HEIC/JPEG файлы, а мобильный браузер иначе отправляет MIME и размер.

Нужно ли сжимать фото?

Часто да. Это снижает ошибки загрузки и экономит место, но качество должно хватать для проверки возврата.

Что делать, если часть фото загрузилась?

Форма должна сохранить заявку и показать, какие файлы не прошли, чтобы клиент мог повторить загрузку.

Когда стоит обратиться за помощью

Обращаться стоит, если возвраты идут регулярно и фото нужны для проверки товара, спора или логистики.

Итог

Проверьте лимиты, MIME, uploads, ajax и привязку файлов к заявке. Если нужно починить загрузку фото для возвратов, пишите в Telegram @rabotator_support.