PHP Image Upload объект не будет создавать каталог в Windows - PullRequest
0 голосов
/ 11 мая 2010

Я пишу класс, который принимает product_id и массив $ _FILES в качестве своего конструктора. Класс сохраняет эти переменные и использует их для создания нового каталога с именем product_id и пытается скопировать временный файл в указанный мной каталог.

По какой-то причине мой класс даже не доходит до создания каталога (что должно происходить в конструкторе)

Вот ссылка на мой код: http://pastie.org/955454

Ответы [ 2 ]

2 голосов
/ 11 мая 2010

Это может быть проблема с разрешениями. Вы говорите, что это сервер на базе Windows? У вас есть эта машина? Вы используете выделенный сервер? Вы используете общий сервер?

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

0 голосов
/ 11 мая 2010

Похоже, что вы используете абсолютный путь в этом каталоге $ this-> в конструкторе, другими словами, он будет обрабатываться как C: \ images \ upload (или любой другой диск, на котором вы запускаете сайт от). Если вы имеете в виду, что это путь типа URI, то вам нужно добавить свой путь к нему:

$this->directory = $_SERVER['DOCUMENT_ROOT'] . '/images/upload/' . $this->prod_id

Вы также можете проверить, что возвращает mkdir (). Это ЛОЖЬ при сбое, после чего вы можете проверить error_get_last() (PHP> = 5.2), чтобы точно понять, почему это происходит.

} else {
     $ret = mkdir($this->directory, 0755, true);
     if ($ret === FALSE) {
        die("mkdir() failed with: " . error_get_last());
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...