我正在尝试获取上传文件的完整路径。 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,看看我正在尝试做什么)
答案 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安全性不会透露这一点。它只会将实际文件名发送到服务器。