[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отправка файла на сервер...
Jimmbo
<?php
//папка для загрузки файлов
$uploaddir = '01';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
//имя загружаемого файла
echo $_FILES['userfile']['name'];
//тип загружаемого файла
echo $_FILES['userfile']['type'];
//размер загружаемого файла
echo $_FILES['userfile']['size'];
} else {
echo 'error';
//ошибки при загрузке файла
echo $_FILES['userfile']['error'];
} ?>


Файл загружается, только не могу понять как его в дополнительный каталог сохранять.
Например страница со скриптом: /file/.
А файл нужно в /file/01/.

Помогите пожалуйста. И еще, как можно с PHP новый каталог создать, например /file/02/. И что будет, если каталога, куда файл загружается, не будет?



Спустя 6 минут, 22 секунды (27.12.2011 - 16:06) johniek_comp написал(а):
Цитата
И еще, как можно с PHP новый каталог создать,

mkdir

Свернутый текст
<?php
//папка для загрузки файлов
$uploaddir = 'file/01/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
//имя загружаемого файла
echo $_FILES['userfile']['name'];
//тип загружаемого файла
echo $_FILES['userfile']['type'];
//размер загружаемого файла
echo $_FILES['userfile']['size'];
} else {
echo 'error';
//ошибки при загрузке файла
echo $_FILES['userfile']['error'];
} ?>

Спустя 23 минуты, 58 секунд (27.12.2011 - 16:30) Jimmbo написал(а):
johniek_comp, говорит:
Warning: move_uploaded_file(files/01/Mod1.png) [function.move-uploaded-file]: failed to open stream: Нет такого файла или каталога in /home/users2/d/doktorweb/domains/yoursoc.ru/files/upload_file.php on line 5

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/users2/d/doktorweb/tmp/php0xLbZh' to 'files/01/Mod1.png' in /home/users2/d/doktorweb/domains/yoursoc.ru/files/upload_file.php on line 5
error0

Спустя 27 минут, 7 секунд (27.12.2011 - 16:57) killer8080 написал(а):
johniek_comp
и получаешь файловую инъекцию ;)
Jimmbo
во первых всегда используй абсолютные пути
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'file/01';

во вторых используй третий аргумент mkdir для рекурсивного создания папки. Если директория file не существует, то mkdir не сможет создать вложенную в неё папку. Нужно так
mkdir($uploaddir, 0660, true);

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

Спустя 15 минут, 57 секунд (27.12.2011 - 17:13) Jimmbo написал(а):
<?php
//папка для загрузки файлов
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/files/01/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
//имя загружаемого файла
echo $_FILES['userfile']['name'];
//тип загружаемого файла
echo $_FILES['userfile']['type'];
//размер загружаемого файла
echo $_FILES['userfile']['size'];
} else {
echo 'error';
//ошибки при загрузке файла
echo $_FILES['userfile']['error'];
} ?>

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

Оно то понятно, мне бы сначала с этим разобраться...

Спустя 15 минут, 13 секунд (27.12.2011 - 17:28) killer8080 написал(а):
А директория /files/01. существует?

Спустя 4 минуты, 22 секунды (27.12.2011 - 17:33) Jimmbo написал(а):
killer8080, да. И файл она называет 01name.gif.

Спустя 23 часа, 15 минут, 5 секунд (28.12.2011 - 16:48) Jimmbo написал(а):
Никто не знает решения? ph34r.gif

Спустя 1 час, 42 минуты, 28 секунд (28.12.2011 - 18:30) killer8080 написал(а):
Цитата (Jimmbo @ 27.12.2011 - 16:33)
И файл она называет 01name.gif.

значит слеш пропустил в $uploaddir

Спустя 5 минут, 45 секунд (28.12.2011 - 18:36) Jimmbo написал(а):
Разобрался, всем спасибо. wink.gif


_____________
Оскорбления — это обычные доводы тех, кто неправ @ Жан-Жак Руссо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.