0

mkdir 関数を使用して php スクリプトを実行すると、403 Forbidden ページが表示されます。

ここにmkdirコードがあります:

mkdir('uploads/'.$upload_folder.'/', 777)

775、666 のアクセス許可を試しましたが、何もしませんでした。ディレクトリ内に、画像、mp3、およびビデオを保存したいと考えています。誰でも私を助けることができますか?

更新 1

ここにスクリプト全体があります:

$folderStr = $_REQUEST['folderName'];

//create SEO firndly directory name
$upload_folder =    preg_replace("'\s+'", '-', $folderStr);

// The place the files will be uploaded to (currently a 'files' directory).
$upload_path = 'uploads/'.$upload_folder.'/';

//Check whether folder exists or create with the name supplied
if(is_dir($upload_folder))
echo 'directory exists';
else
mkdir('uploads/'.$upload_folder.'/', 777);

値「folderName」でそこから取得したフォームから指定された名前で「アップロード」フォルダーに新しいディレクトリを作成し、フォームから指定されたファイルを作成された新しいディレクトリにアップロードすることになっています。また、フォルダ名にギリシャ文字を書くことはできません。それを機能させるために何を変更する必要がありますか?

4

1 に答える 1

0

目的のモードの前にゼロが必要です。

mkdir('uploads/'.$upload_folder.'/', 0777)

「777」を使用すると、次のような奇妙な許可が得られます。

dr----x--t

これの代わりに:

drwxrwxr-x

理由 ( PHP の chmodドキュメントから):「モードは自動的に 8 進値であると見なされないことに注意してください。そのため、期待どおりの動作を保証するには、モードの前にゼロ (0) を付ける必要があります。」

PHP 7.0.3 でも、整数処理に関連する変更が行われたにもかかわらず、これが引き続き発生することを確認できます。エラー。"

ただし、いずれにしても 0777 がデフォルトであり、可能な限り広いアクセスを提供するため、後でパラメーターを設定する場合を除き、指定する必要はありません (たとえば、3 番目のオプションをtrueに設定して、再帰的なディレクトリの作成を有効にすると便利なことがよくあります。親が存在しない場合にエラーを作成するのではなく)。

于 2016-02-17T14:51:08.110 に答える