2016-09-18 42 views
-1

我可以讓用戶上傳文件並將其保存在文件夾中,但是當我試圖把它與重命名:未知的解析錯誤時,試圖重命名上傳的文件

$date = date('d/m/o!G:i'); 
rename("/var/www/html/Images/CommonImages/{basename($_FILES['postfile']['name'])}","/var/www/html/Images/CommonImages/{$_SESSION['username']}/{$date}.{$imageFileType}"); 

它給了我這本解析錯誤:

syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) 

也許這是愚蠢的東西...

+0

[PHP解析/語法錯誤的可能的複製;和如何解決它們?](http://stackoverflow.com/questions/18050071/php-parse-syntax-errors-and-how-to-solve-them) – HPierce

回答

2

不要試圖執行字符串中的功能...使用串聯:

變化:

"/var/www/html/Images/CommonImages/{basename($_FILES['postfile']['name'])}" 

要:

"/var/www/html/Images/CommonImages/" . basename($_FILES['postfile']['name']) 

你真的應該習慣使用拼接,而不是把變量裏面的字符串。即使PHP允許字符串內部的變量,大多數其他語言也不會。在我看來,代碼是串聯乾淨多了,因爲你可以很容易地看到哪些部分是靜態的字符串,哪一部分是變量:

"/var/www/html/Images/CommonImages/" . $_SESSION['username'] . "/" . $date . "." . $imageFileType 
+0

謝謝,現在它工作正常! – Giulio