PHP上传路径中没有斜杠

时间:2011-03-11 00:53:31

标签: php javascript json file-upload

我正在尝试获取上传文件的完整路径。 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>

我可以用rem'd out行打开json文件,但我需要在会话结束时返回它的路径。使用警报进行测试显示完整路径没有斜线,文件名的首字母'n'丢失......

任何帮助都非常感激。

(点击姓名,然后在此test site打开nset.json,看看我正在尝试做什么)

2 个答案:

答案 0 :(得分:3)

您假设在Windows上使用此功能,其中DIRECTORY_SEPARATOR是反斜杠。如果文件名以n开头,则您的Javascript代码最终将如下所示:

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

与PHP不同的Javascript将在单引号字符串中解释\n

解决您的困境的方法是使用DIRECTORY_SEPARATOR或输出正确转义的Javascript字符串:

d = <?php echo json_encode($target_path); ?>;

答案 1 :(得分:0)

您是指客户端计算机上文件的完整路径吗? JavaScript安全性不会透露这一点。它只会将实际文件名发送到服务器。

相关问题