Я выбираю файл, и когда я передаю имя, я вижу имя, но все равно не могу загрузить
Это часто происходит потому, что вы не указали форму для отправки.как multipart/form-data
.По умолчанию используется значение application/x-www-form-urlencoded
, которое не может содержать загрузки файлов;в этом случае вы просто получите вместо этого имя файла.
<form method="post" action="..." enctype="multipart/form-data">
Кстати,
$config['allowed_types'] = 'gif|jpg|png';
, если вам нужно использовать расширение имени файла для проверки типа файла (и это нежелательно, но это то, что предлагает CodeIgniterк сожалению), пожалуйста, разрешите также jpeg
и любые другие возможные расширения.
$config['upload_path'] = './uploads/';
Если эта папка для загрузки находится внутри веб-корня (вы будете обслуживать файлы непосредственно из нее), это потенциально перекрестно-сайтинг в скриптах.К сожалению, есть возможность загружать файлы, которые выглядят как изображения, но на самом деле содержат HTML, включая <script>
.
Безопасное выполнение загруженного пользователем контента - hard .См. Например этот вопрос для фона.