0
function uploadFile() {
            global $attachments;
            while(list($key,$value) = each($_FILES[images][name]))
            {
            if(!empty($value))
            {
            $filename = $value;
            //the Array will be used later to attach the files and then remove them from server ! array_push($attachments, $filename);
            $dir = "/home/blah/Music/$filename";
            chmod("/home/blah/Music",0777);
            $success = copy($_FILES[images][tmp_name][$key], $dir);
            }
            //
            }
            //
            if ($success) {
            echo " Files Uploaded Successfully<BR>";
  //
  }else {
     exit("Sorry the server was unable to upload the files...");
        }
                                //
        }

ファイルをアップロードしてから、PHP Mailer を使用してメールに添付して送信しようとしています。

エラー:

Warning: copy(/home/blah/Music/Aerial_view_of_Yamuna_Expressway.jpeg): failed to open stream: Permission denied in /opt/lampp/htdocs/UI/user/joinmeeting.php on line 292

更新しました :

blah@my001server:~$  ls -la for /home/blah/Music
ls: cannot access for: No such file or directory
/home/blah/Music:
total 8
drwxr-xr-x  2 blah blah 4096 Jul  4 10:20 .
drwxr-xr-x 67 blah blah 4096 Sep 21 10:18 ..

Linux システムでファイルのコピーが許可されないのはなぜですか?

4

3 に答える 3

1

対象フォルダの権限を確認してください。
777 を設定して、もう一度やり直してください

$ chmod 777 folder

ご覧のとおり、Music フォルダーへの書き込み権限を設定していません。
PHPスクリプトからではなく、コンソールから手動で設定してください。

于 2012-09-21T06:55:33.327 に答える
0

あなたの編集は少し奇妙です。

blah@my001server:~$  ls -la for /home/blah/Music
ls: cannot access for: No such file or directory
/home/blah/Music:
total 8
drwxr-xr-x  2 blah blah 4096 Jul  4 10:20 .
drwxr-xr-x 67 blah blah 4096 Sep 21 10:18 ..

このコマンドは、実際には次のように間違っています。

blah@my001server:~$  ls -la /home/blah/Music

あなたは走っているはずです。

しかし、問題があります。.フォルダ全体を示すファイルにはwww-data権限がありません。これは、Linux ディストリビューションのデフォルトの Web ユーザーがおそらくこれらのファイルにアクセスできないことを意味します。

PHP は webuser の下で実行されるため、Linux は所有していないものに対してor or (またはその他のこと)www-dataを許可しません。cpvigedit

あなたが試すことができます:

sudo chown /home/blah/Music www-data

その代わり。www-dataこれにより、ディレクトリ内のファイルを制御する権限が付与されます。

もちろん、これはさらに大きな問題を引き起こします。セキュリティ上の理由から、実際の Web サーバーからアップロード ディレクトリなどを切断するのが理想的です。

于 2012-09-21T12:17:08.287 に答える
0

copy の代わりに move_uploaded_file (http://php.net/manual/en/function.move-uploaded-file.php) を試してください:

move_uploaded_file($_FILES[images][tmp_name][$key], $dir);
于 2012-09-21T06:58:38.550 に答える