-3
<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "C:\Program Files\wamp\www\workspace\DiaryApp\upload\".$new_image_name);
?>

请帮我解决我是php新手的错误

4

4 回答 4

5

转义 的\路径参数中的最后一个move_uploaded_file()

"C:\Program Files\wamp\www\workspace\DiaryApp\upload\\"

否则,您实际上是在转义结束字符串分隔符"并将其作为文字双引号添加到字符串中。这意味着字符串在与以下变量连接之前不会终止$new_image_name,从而导致您指定的错误。

于 2013-02-23T21:09:24.443 回答
2

您需要将最后一行更改为:

move_uploaded_file($_FILES["file"]["tmp_name"], "C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\".$new_image_name);

以便转义路径名中的所有反斜杠

于 2013-02-23T21:11:26.260 回答
2

在文件路径中使用正斜杠 /。这将适用于 Windows。此外,将这些路径写入变量。你真的不希望这些硬编码。

于 2013-02-23T21:11:39.037 回答
1

我可以看到您是新人(不是问题,每个人都必须学习;))

a\是 php 的通知,它将跟随一个特殊的字符,例如 \n \r \" \'

所以这就是为什么你必须“逃避”你的\.

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\".$new_image_name);
?>

仅当您将字符串放在(双引号)之间时。您也可以将它们放在'(单引号)之间,然后您不能转义它们。 ==> 不是真的,您必须始终转义\

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], 'C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\'.$new_image_name);
?>

这对教育很有用:

所以我在这里你想:“ “'之间有什么区别?”。

那么白色“”你可以在你的引号之间放置变量,例如

<?php
$str="string";
echo "this is a $str.";
?>

输出将是:这是一个字符串。

使用' ',所有字符都按字面意思表示

<?php
$str="string";
echo 'this is a $str.';
?>

输出将是:这是一个 $str。

于 2013-02-23T21:28:18.100 回答