Нам нужна дополнительная информация, но возможности, которые приходят на ум:
- Ваш HTML-код неверен.
- Файл слишком большой.
- Имя файла слишком длинное.
- Проблема с правами на запись в файл на сервере.
Убедитесь, что ваша HTML-форма имеет "enctype"
Убедитесь, что ваша HTML-форма на странице имеет enctype="multipart/form-data"
например,
<form action="" method="POST" enctype="multipart/form-data">
Диагностика ошибки PHP / записи файла
Если это проблема с файлом / правами доступа, вы можете обнаружить ошибку PHP, поэтому попробуйте включить отчет об ошибках на странице, как показано ниже:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
Изменить file_id для автоматического создания
Вам также следует изменить свою базу данных, чтобы она генерировала ваш file_id
(т. Е. Автоинкрементный первичный ключ / идентификатор), а не передавал один. Если у вас нет автоматической генерации, вы рискуете дубликатов file_id
записей (или неудачный запрос, если столбец file_id
является первичным ключом, как и должно быть).
Предположительно, вы также не на самом деле , используя 'scriptData' : {'file_id':'001'}
, поскольку это будет означать, что вы вставляете file_id
из 001 для каждой записи. Тем не менее, даже генерация клиентского размера этого рискует: а) люди, выбравшие свои собственные file_id
и повредившие ваши данные, б) ошибки, когда JS отключен (загрузка не будет работать, но файл, вероятно, все еще будет работать) и с ) дубликат file_id
поколения.
Ваш образец уязвим для SQL-инъекций
Ваш текущий образец особенно уязвим для SQL-инъекций, так как вы не экранируете свои параметры. Вы можете отклонить это как «о, это нормально, это внутреннее приложение, так что нет угрозы безопасности», но даже случайный SQL-инъекция может вызвать проблемы. Если это общедоступный веб-сайт, вы только что выставили свою базу данных. Я собираюсь предположить, что это сокращенный пример, но даже тогда не рекомендуется размещать неэкранированный SQL (по крайней мере, без комментариев), так как это просто приводит к тому, что другие менее опытные разработчики копируют / вставляют его в приложение где-то.