【问题标题】:move_uploaded_file failed to open stream: Permission denied - Macmove_uploaded_file 无法打开流:权限被拒绝 - 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,还有其他解决方案吗?

【问题讨论】:

    标签: php apache file-upload upload xampp


    【解决方案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“解决方案”。通常不安全,几乎没有必要,有时作为快速破解是权宜之计。
                  猜你喜欢
                  • 2023-03-18
                  • 2013-06-19
                  • 2014-01-02
                  • 2011-12-27
                  • 2014-10-16
                  相关资源
                  最近更新 更多