2013-08-19 6 views
3

Я недавно перевел мой сервер на новый хост, и теперь у меня проблемы с моей формой загрузки PHP. Файлы не могут быть загружены. Ошибки я получаю:Каталог загрузок не доступен для записи

Предупреждение: move_uploaded_file (/public_html/site/abc/uploads/APLICATION.doc) [function.move загруженным-файл]: не удалось открыть поток: Нет такого файла или каталог в /long/path/apply.php на линии 389

Предупреждение: move_uploaded_file() [function.move загруженным-файл]: Невозможно ход '/ TMP/phpDAz5QP' в «/ public_html/сайта /uploads/1908131216_APPLICATION.doc 'в /long/path/apply.php в строке 389 Проблема: не удалось переместить файл в каталог назначения не доступен для записи/tmp/phpDAz 5QP - /public_html/site/abc/uploads/1908131216__APPLICATION.doc

У меня есть этот небольшой тест, чтобы увидеть, если каталог доступен для записи, и это не так.

$upload_dir = "/public_html/site/$companyfolder/uploads"; 
if(!is_writable($upload_dir)) { 
    $writable = 'not writable'; 
} else { 
    $writable = 'writable'; 
} 
echo $writable; 

У меня есть папка загрузок, установленная для 777 для разрешений. Любые идеи о том, почему каталог не доступен для записи?

+1

Возможно, вам потребуется изменить разрешение папки с панели управления. Иногда изменение разрешения папки через FTP неэффективно. Вы должны пойти в cPanel и сделать это. – u54r

+0

Ваш путь неправильный, не должно быть '/ home/youruser/public_html/site/$ companyfolder/uploads'? Или вы создали папку с именем public_html в корне вашего HD '/' – Prix

+0

Вы уверены, что ваш путь верен? PHP принимает абсолютные пути, поэтому ваш «корень» не является корневым каталогом вашего сайта, но это ваш корневой каталог. EDIT: О, извините, слишком поздно. – Max

ответ

2

Из вашего кода выше, это, кажется, ваш путь загрузки неправилен:

$upload_dir = "/public_html/site/$companyfolder/uploads"; 

Должен быть что-то вроде:

$upload_dir = "/home/youruser/public_html/site/{$companyfolder}/uploads"; 

каталога должен быть абсолютным путь или относительным. Когда он относительный, он должен быть относительно того, где вызывается PHP.

Таким образом, вы могли бы использовать его как, например, ./site/{$companyfolder}/uploads, то есть ваш используемый php-код находится на /home/youruser/public_html.

Смежные вопросы