PHP загрузить без косой черты в пути - PullRequest
0 голосов
/ 11 марта 2011

Я пытаюсь получить полный путь к загруженному файлу.Код php выглядит следующим образом:

<?php
$destination_path = getcwd() . DIRECTORY_SEPARATOR;

$result = 0;

$target_path = $destination_path . basename($_FILES['thefile']['name']);

if(@move_uploaded_file($_FILES['thefile']['tmp_name'],*$target_path)) {
$result = 1;
}

?>
<script language="javascript" type="text/javascript">
//d = '<?php echo basename( $_FILES['thefile']['name']); ?>';
d = '<?php echo $target_path; ?>';
window.top.window.phpUpload(d);
</script>

Я могу открыть файл json со строкой rem'd out, но мне нужен путь, чтобы вернуть его в конце сеанса.При тестировании с предупреждением полный путь показывается без косых черт, а начальная буква 'n' в имени файла отсутствует ...

Любая помощь приветствуется.

(Нажмите Имена, затем откройте nset.json на этом тестовом сайте , чтобы увидеть, что я пытаюсь сделать)

Ответы [ 2 ]

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

Вы, вероятно, используете это в Windows, где DIRECTORY_SEPARATOR - это обратная косая черта. Если имя файла начинается с n, тогда ваш код Javascript будет выглядеть так:

d = '..\path\nameoffile.txt';

Javascript, в отличие от PHP, будет интерпретировать \n в одиночных кавычках.

Решением вашей дилеммы является либо не использование DIRECTORY_SEPARATOR, либо вывод правильно экранированной строки Javascript:

d = <?php echo json_encode($target_path); ?>;
0 голосов
/ 11 марта 2011

Вы имеете в виду полный путь к файлу на клиентском компьютере ? Безопасность JavaScript не раскрывает это. Он просто отправит фактическое имя файла на сервер.

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