首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP move_uploaded_file

PHP move_uploaded_file
EN

Stack Overflow用户
提问于 2013-11-03 20:36:10
回答 1查看 836关注 0票数 0

我尝试使用PHP move_uploaded_file将文件上传到服务器,但收到以下错误:

代码语言:javascript
代码运行次数:0
运行
复制
Warning: move_uploaded_file() [function.move-uploaded-file]: The second argument to copy() function cannot be a directory in /Users/Rick/Sites/upload/upload.php on line 7

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/Applications/XAMPP/xamppfiles/temp/phpDlCZUd' to '/Users/Rick/Sites/upload/uploads/richardgregson' in /Users/Rick/Sites/upload/upload.php on line 7

下面是我的代码,没有什么复杂的东西。

代码语言:javascript
代码运行次数:0
运行
复制
if($_POST["upload"]){

$target_path = "/Users/Rick/Sites/upload/uploads/" . $_POST["name"];

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)){
        echo "<div class='success'>The file " . "<span class='filename'>" . basename( $_FILES['uploadedfile']['name']) . "</span>" . " has been uploaded</div>";
    } else {
        echo "<div class='error'>There was an error uploading the file, please try again!</div>";
    }
}

它正在写入的文件夹的权限是正确的。我不理解错误“不能是一个目录,因为参数是我们要将文件移动到的位置,所以它必须是一个目录。”

谢谢

瑞克

EN

回答 1

Stack Overflow用户

发布于 2013-11-03 20:40:35

该错误将告诉您出了什么问题- $target_path (/Users/Rick/Sites/upload/uploads/richardgregson)是一个目录

尝试添加扩展名。

代码语言:javascript
代码运行次数:0
运行
复制
$extension=end(explode('.', $_FILES["uploadedfile"]["name"]));
$target_path = "/Users/Rick/Sites/upload/uploads/" . $_POST["name"] . '.' . $extension;

或者您将文件放入文件夹

代码语言:javascript
代码运行次数:0
运行
复制
$target_path = "/Users/Rick/Sites/upload/uploads/" . $_POST["name"] . '/' . $_FILES["uploadedfile"]["name"];

注意:你不应该相信用户只上传你想要的文件,你应该清理$_POST"name",这一切都太容易了,让它成为'../../‘并发布一个PHP文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19753010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档