上传文件是前缀指定文件夹的名称,最终在该文件夹之外

时间:2014-09-13 00:52:14

标签: php apache file-upload mamp

没有发现任何适合我的事情,但也许你做了。你应该知道我在当地的环境中,使用apache&在MAMP中的PHP。

我正在将文件图像上传到文件夹(uploads),该文件夹位于根文件夹(htdocs)中。问题是,当capybara.jpg上传时,它最终会在uploads文件夹之外作为uploadscapybara.jpg。

我的php在下面

$name = $_FILES['image']['name'];
//$size = $_FILES['image']['size'];
//$type = $_FILES['image']['type'];

$tmp_name = $_FILES['image']['tmp_name'];

if (isset($name)) {
if (!empty($name)) {

$location = 'uploads';

if (move_uploaded_file($tmp_name, $location.$name)) {
echo 'uploaded!';
} 
} else {
echo 'Please choose a file';
}
}

我没有得到任何警告,因为php在上面,但仍然有问题。如果我尝试为上传添加斜杠,写$location = '/uploads'我会得到

Warning: move_uploaded_file(/uploadsCapybara.jpg): failed to open stream: Permission denied in   /Applications/MAMP/htdocs/uploadfile.php on line 22

Warning: move_uploaded_file(): Unable to move '/Applications/MAMP/tmp/php/phpCTLZgH' to '/uploadsCapybara.jpg' in

我进入该文件夹,点击获取信息,并将Privelege更改为读取和写入超级用户和管理员。我写了一个别名mod,它根本就是要上传的文件,然后为<Directory "/Applications/MAMP/uploads"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory>写了一个目录,

我还为该文件夹编写了include_path。 ".:/Applications/MAMP/bin/php/php5.5.14/lib/php:/Applications/MAMP/htdocs/uploads"

所以从我读过的所有内容,我都尝试过它们,没有任何工作。我的语法中的东西必须关闭???什么不是我得到??

1 个答案:

答案 0 :(得分:1)

您忘记了位置值中的尾部斜杠。

$location = 'uploads/';