move_uploaded_file 无法打开流:权限被拒绝 - Mac

Posted

技术标签:

【中文标题】move_uploaded_file 无法打开流:权限被拒绝 - Mac【英文标题】:move_uploaded_file failed to open stream: Permission denied - Mac 【发布时间】:2015-11-02 03:43:09 【问题描述】:

虽然我正在尝试使用以下代码在 php 中移动_uploaded_file:

if(is_uploaded_file($_FILES['fileupload2']['tmp_name']))

        move_uploaded_file($_FILES['fileupload2']['tmp_name'], "images/".$_FILES['fileupload2']['name']);

    

我有这个错误说:

Warning: move_uploaded_file(images/VIDEO_TS.VOB): failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/Week3/Lesson2/do_upload.php on line 24

我在终端尝试过,但没有成功:

sudo CHMOD 775 /Applications/XAMPP/xamppfiles/htdocs/Week3/Lesson2/do_upload.php 

sudo chmod -R 0755 /Applications/XAMPP/xamppfiles/htdocs/Week3/Lesson2/do_upload.php 

sudo chown nobody /Applications/XAMPP/xamppfiles/htdocs/Week3/Lesson2/do_upload.php 

我仍然收到错误,我正在使用 Yosemite,还有其他解决方案吗?

【问题讨论】:

【参考方案1】:

我的解决方案是授予图像文件夹和php文件的权限,方法是转到文件>右键单击>获取信息>然后将所有权限更改为read&write,如下图所示。

【讨论】:

【参考方案2】:

我正在使用 ubuntu,一旦遇到此问题,我通过将要移动文件的文件夹的所有访问权限更改为“创建和删除文件”来解决此问题。看下面的截图:

【讨论】:

【参考方案3】:

为您的目标(上传)文件夹设置相同的权限

【讨论】:

【参考方案4】:

通过更改权限解决了这个问题,如 avobe 所述 并使目标文件夹位于应用程序运行的同一目录 Root 而不是 Home

图片上传路径

/Applications/XAMPP/xamppfiles/htdocs/emp/files/admin_assets/addsdassets/targrt_Folder

应用程序运行的文件夹路径

/Applications/XAMPP/xamppfiles/htdocs/emp/files/admin_assets/addsdassets/inser_db.php

【讨论】:

【参考方案5】:

您可以在更改保存图像的文件夹图像的所有者后尝试。它可能会起作用。

chown ownername:group folder;

你必须给出文件夹的绝对地址

【讨论】:

【参考方案6】:

我在 IIS (Windows 10) 上运行 Yii2,我调整了路径并让它工作。参见下面的代码 sn-p:

if($model->load(Yii::$app->request->post())) 

    $image = UploadedFile::getInstance($model, 'image');
    $model->image = $image->getBaseName().'.'.$image->extension;            
    if($model->save()) 
        $image->saveAs('uploads/'.$model->image);//Notice the path change here
        return $this->redirect(['view', 'id' => $model->ID]);
    


else 

    return $this->render('update-image', [
        'model' => $model
    ]);

希望这会有所帮助。

【讨论】:

【参考方案7】:

此问题是由权限受限引起的。要解决扩展或更改文件夹的权限,请使用:chmod -R 777 folder-path

例如:

chmod -R 777 /opt/lampp/htdocs/php/aitech/images/passport_photos

【讨论】:

【参考方案8】:

申请

sudo chmod 777 images/

到文件夹/目录,这是您存储图像的服务器文件夹。请检查哪个是您的文件夹。完全取决于您的选择。

【讨论】:

哦耶,chmod 777“解决方案”。通常不安全,几乎没有必要,有时作为快速破解是权宜之计。

以上是关于move_uploaded_file 无法打开流:权限被拒绝 - Mac的主要内容,如果未能解决你的问题,请参考以下文章

move_uploaded_file 无法打开流和权限被拒绝错误

PHP/IIS copy()/move_uploaded_file() 无法打开流:权限被拒绝警告

在我完成所有配置后,move_uploaded_file给出“无法打开流:权限被拒绝”错误

无法打开流:是一个目录

图片上传错误无法打开流:没有这样的文件或目录

Ubuntu Server不会使用PHP“move_uploaded_file”上传文件