簡體   English   中英

PHP上傳路徑中沒有斜杠

[英]PHP upload no slashes in path

我正在嘗試獲取上載文件的完整路徑。 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'丟失了...

任何幫助,不勝感激。

(單擊“名稱”,然后在此測試站點打開nset.json以查看我要執行的操作)

假設您在Windows上使用此功能,其中DIRECTORY_SEPARATOR是反斜杠。 如果文件名以n開頭,那么您的Javascript代碼將像這樣結束:

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

與PHP不同,JavaScript會在單引號中解釋\\n

解決難題的方法是不使用DIRECTORY_SEPARATOR ,或輸出正確轉義的Javascript字符串:

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

您是指客戶端計算機上文件的完整路徑嗎? JavaScript安全性不會揭示這一點。 它將僅將實際文件名發送到服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM