PHP创建具有两个变量的文件夹会给出错误的foldername

时间:2016-06-13 20:58:35

标签: php file-upload mkdir

我正在尝试为上传文件创建一个随机的foldername。 文件夹路径应为" receivedfiles / $ name $ date / "。相反,我得到这个:" receivedfiles /。 2016年6月13日/ &#34 ;.我真的不知道出了什么问题......

变量$ name是用户输入,可以是例如"西蒙"或者" Simon Jensen"取决于用户想要的内容。

$d = date('d.m.y');
$varfoldername = "../receivedfiles/. $name . $d ./";
mkdir($varfoldername , 0777 , true);
$upload_folder = $varfoldername;

感谢我帮助我从上面的代码中删除了点,请参阅下面的代码,其中只列出具有日期的文件夹。

$name = $_POST['name'];
$d = date('d.m.y');
$varfoldername = "../receivedfiles/$name$d/";
mkdir($varfoldername , 0777 , true);
$upload_folder = $varfoldername;

解决方案: $ name稍后在脚本中首次指定。移动它顶上解决了部分问题。如上所述更改了文件夹路径解决了其余问题 - 谢谢大家:)

3 个答案:

答案 0 :(得分:0)

嗯,额外的点是因为你没有正确连接。第二行应该是

$varfoldername = "../receivedfiles/" . $name . $d . "/";

或者您可以删除字符串中的点,因为您使用双引号作为文件夹名称值。

答案 1 :(得分:0)

。问题是这是来自发送电子邮件表单的代码。电子邮件在下面编写,fileupload在上面。所以当然变量在那条线上并不知道。

非常,你已经在问题中写了解决方案

$varfoldername = "../receivedfiles/$name$date/";

因为它是双引号的PHP解释$ ..作为变量并打印其内容

顺便说一句,打印$ varfoldername以查看输出是什么

答案 2 :(得分:0)

首先,您需要检查$name变量是否为空。

然后,使用sprintf创建路径。它提供更灵活的格式,并帮助您摆脱冗余空格/点/等。试试这个:

$varfoldername = sprintf('../receivedfiles/%s%s/', $name, $d);