5

ここにスクープがあります: PHP スクリプトを使用してフォルダーを作成し、それらのフォルダーに画像ファイルをアップロードできるようにする必要があります。これが私のコードです:

ディレクトリの作成:

mkdir('[path]/images/foldername');  


画像のアップロード:

if ($_FILES["file"]["error"] > 0 || $_FILES["file"]["type"] != "image/jpeg") // file must be valid and .jpg
{
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Stored in: " . $_FILES["file"]["tmp_name"] . '<br />';

    if(file_exists($path ."/" . $_FILES["file"]["name"]))
    {
        echo $_FILES["file"]["name"] . " already exists. ";
    }
    else
    {
        move_uploaded_file($_FILES["file"]["tmp_name"], $path ."/" . $_FILES["file"]["name"]);
        echo "Stored in: " . $path ."/" . $_FILES["file"]["name"];
    }
}

FTP エディターで次のエラーが発生します。

[L] DELE 20.jpg
[L] 550 Could not delete imagename.jpg: Permission denied

それから

[L] RMD foldername
[L] 550 Can't remove directory: Directory not empty

FTP エディターでアクセス許可を変更しようとしましたが、次のエラーが発生しました。

[L] SITE CHMOD 777 [パス]/フォルダー名 [L] 550 [パス]/フォルダー名のパーマを変更できませんでした: 操作は許可され ていません
Putty で SSH を使用してファイルを削除しようとしましたが、それも機能しませんでした。

私を助けてください!

4

3 に答える 3

4

アップロードしたファイルを移動したら、次のことを試してください。

@chmod($path ."/" . $_FILES["file"]["name"], 0777);

か何か。アクセス許可をより適切なものに変更することをお勧めします。

于 2012-05-18T22:43:59.907 に答える
3

PHP インストールは、FTP セッションとは別のユーザーとして実行されているようです。したがって、php アップロード スクリプトは、ftp ユーザーがアクセスできないファイルを作成できます ;-)。

この問題に対処するには、基本的に次の 3 つの方法があります。

  1. 削除したいファイルを削除する php スクリプトを作成します。そのために unlink() を使用します。Google は、再帰的な実装も提供します。
  2. ファイルのアクセス許可を変更します (chmod を使用します。注意してください。この可能性を持たない人やプロセスがファイルに簡単にアクセスできるようにしてください。本番環境ではこれを行わないでください)。
  3. ftp ユーザーと php ユーザーが同じであることを確認してください。ターゲット マシンで root になるか、それに応じてセットアップするためにマシンのフレンドリーな管理者が必要です。
于 2012-05-18T22:48:29.847 に答える
2

FTP サーバーが実行されているユーザー アカウントを変更して、PHP スクリプト (おそらく www-data または httpd) と同じユーザーを使用することができます。

于 2012-05-18T22:46:00.207 に答える