Как в PHP залить файл из поля «type=file» в определенную директорию (является субдиректорией от той, где лежит файл с кодом)?
Есть html форма
<form method="POST"> <input type="file" name="miny_file"> <input type="submit"> </form>
Как мне залить файл из поля miny_file в определенную директорию? (Она является субдиректорией от той, где лежит файл с кодом).
Во-первых
В форме нужно указать тип кодирования данных как enctype="multipart/form-data". Это чтобы форма не только POST данные передавала но и FILES.
``
<form enctype="multipart/form-data" method="POST" action="">
<!-- MAX_FILE_SIZE должно быть до type="file" -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
<input type="file" name="miny_file">
<input type="submit" value="Загрузить">
</form>
# Пример
Следующий пример принимает и обрабатывает загруженный при помощи формы файл.
``
// папка назначения
$upload_dir = __DIR__ .'/subfolder/';
$upload_file = $uploaddir . basename( $_FILES['userfile']['name'] );
// перемещаем файл из временной директории
if ( move_uploaded_file( $_FILES['userfile']['tmp_name'], $uploadfile ) ) {
echo "Файл корректен и был успешно загружен.n";
}
else {
echo "Возможная атака с помощью файловой загрузки!n";
}
echo 'Отладочная информация:';
echo '<pre>'. print_r( $_FILES, 1 ) .'</pre>';
Обрабатываем:
``
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
}
}