2016-09-18 80 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