简体   繁体   中英

move_uploaded_file failed to open stream: Permission denied - Mac

While i am trying to move_uploaded_file in php with following code:

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

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

    }

I've got this error saying:

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

i tried in the terminal and didn't work:

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 

I am still getting the error and i am using Yosemite, any other solution?

My solution was to give the permission for the images folder and the php file, by going to the file > Right click > Get info > and then change all the permissions to read&write as the following picture.

在此处输入图片说明

I am using ubuntu and once I have encounter this problem, I have solved this problem by changing all the access permissions of the folder in which I want to move the files to 'create and delete files'. See below screenshot:

在此处输入图片说明

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

This problem solved by changing permission as described avobe and making the target folder in the same directory {Root rather than Home } in which application is running

path for image upload

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

path of folder in which application is running

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

You can try after changing owner for the folder images where you are saving the images. It may work.

chown ownername:group folder;

you have to give absolute address of the folder

I was running Yii2 on IIS (Windows 10) and I tweaked the path and got it working. See code snippet below:

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
    ]);
}

Hope this helps.

This issue is caused by restricted permission. To resolve extend or change your permission to the folder using: chmod -R 777 folder-path .

Eg:

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

apply

sudo chmod 777 images/

to the folder/directory which is your server folder to store images. Please check which is your folder. Totally depends on your choice.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM