Почему я не могу создать каталог с помощью php? - PullRequest
0 голосов
/ 11 марта 2011

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

Предупреждение: mkdir () [function.mkdir]: Нет такой файл или каталог в /home5/ideapale/public_html/amatorders_final/user_char_upload.php по линии 251

Вот код, на который он ссылается:

if (!file_exists("../upload/" . $order_id . '_' . $row['last_name'])) { //Checks if the directory already exists
    mkdir("../upload/" . $order_id . '_' . $row['last_name'], 0755); //Creates a new directory with the order_id and Customer last name
}

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

Мне это кажется довольно простым, поэтому я не уверен, почему функция mkdir не работает для меня на этой странице. Любые идеи кто-нибудь?

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

Используя mkdir с двумя параметрами, для создания каталога a/b/c должен существовать каталог a/b.

Если вы хотитеa/b, который будет создан при попытке создать a/b/c, вам нужно передать true в качестве третьего параметра (тот, который называется recursive ;-)) в mkdir.


Если ваш каталог upload уже существует, то вам нужно убедиться, что ../upload/ действительно то, что вы думаете.

Это ../upload/ относится к текущему каталогу выполнения (который не обязательно совпадает с тем, в котором содержится ваш скрипт!)


Возможно, вы захотите попробовать использоватьэто:

var_dump(realpath('../upload/'));

чтобы проверить, является ли этот каталог тем, о чем вы думаете - он покажет полный путь, если он существует;или false, если это не так.

0 голосов
/ 11 марта 2011
you are passing wrong path to the function man.

т.е. move_upload_file ($ arg);

Если вы укажете неверный путь в $ arg, будет показано сообщение об ошибке, как вы сказали.

...