2010-05-11 2 views
0

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

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

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

+0

Что возвращает mkdir? –

+0

Как выглядят идентификаторы, т. Е. '$ Prod_id'? –

+0

$ prod_id, да; И MKDIR возвращает 0 – ThinkingInBits

ответ

2

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

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

+0

я дать этому попытку, я на локальном хосте – ThinkingInBits

+0

я попытался убрав только для чтения, но он продолжал возвращаясь назад, когда я вновь открыть свойства папки. – ThinkingInBits

+0

Попробуйте изменить свойства в учетной записи администратора. Если ваша учетная запись уже признана «учетной записью администратора» (которая в Windows не обязательно означает, что у вас есть неограниченный доступ), попробуйте выполнить шаги на этой странице: http://www.howtogeek.com/howto/windows- Vista/включить-на-спрятанный-администратора-счет-на-Windows-Vista / – dclowd9901

0

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

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

Вы также можете проверить, что MkDir() 's возвращение. Это ошибка FALSE при сбое, после чего вы можете проверить error_get_last() (PHP> = 5.2), чтобы точно узнать, почему он не работает.

} else { 
    $ret = mkdir($this->directory, 0755, true); 
    if ($ret === FALSE) { 
     die("mkdir() failed with: " . error_get_last()); 
    } 
} 
Смежные вопросы