Загрузка файла PHP не работает с динамическим путем - PullRequest
0 голосов
/ 04 апреля 2010

Я пытаюсь написать скрипт загрузки php для загрузки файлов в разные папки.Мой код работает для прямого пути (что-то вроде 'path / to / directory'), но не для динамического пути, взятого из среды выполнения.

$directory_self = dirname($_SERVER['PHP_SELF']);
$folder = $_POST['folder_name']; //final folder
$toupload = $_SERVER['DOCUMENT_ROOT'] . $directory_self .'/files'. $folder;
$uploadsDirectory = str_replace (" ", "", $toupload);

Когда я отображаю $ uploadsDirectory, он показывает точный путь.Может ли кто-нибудь помочь мне, что может быть не так в этом?

Ответы [ 3 ]

0 голосов
/ 04 апреля 2010

Вы должны проверить и проверить, создана ли папка и есть ли у сценария разрешение на запись в нее файлов.

Каков точный вывод сценария загрузки? (т.е. какие ошибки он выдает?)

0 голосов
/ 04 апреля 2010

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

$directory_self = dirname($_SERVER['PHP_SELF']);
$folder = $_POST['folder_name']; //final folder
$uploaddir = $_SERVER['DOCUMENT_ROOT'] . $directory_self . '/files';

$uploadsDirectory = str_replace (" ", "", $uploaddir);

if (!is_dir($uploadDirectory)) {
    die("$uploadDirectory is not a directory");
}

if (!is_writeable($uploadDirectory)) {
    die("$uploaddir is not writeable");
}

$toupload = $uploadDirectory . $folder;

if (!is_writeable($toupload)) {
    die("$toupload is not writeable");
}
0 голосов
/ 04 апреля 2010

Попробуйте использовать dirname(__FILE__);

<?php
$directory_self = dirname(__FILE__);
$folder = "faruk"; //final folder
$toupload = $_SERVER['DOCUMENT_ROOT'] . $directory_self .'/files/'. $folder;
$uploadsDirectory = trim($toupload);
echo $uploadsDirectory."\n";

?>

Вывод на мой ноутбук;

/home/test/Desktop/files/test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...