0

製品 ID に従ってディレクトリを作成する非常に単純な PHP スクリプトがあります。これらのフォルダは、製品 ID 固有の画像をそこにアップロードするように作成されています。

このフォルダーが PHP スクリプトで作成されたら、作成mkdir('folder',0777)したばかりのフォルダーに PHP で画像をアップロードします。これは正常に機能しません。関数move_uploaded_fileはサーバー関数で規則を返しますsafe_mode。このサーバーのsafe_modeプロパティはオフになっていますが、それでもこのエラー/警告が表示されます。

FTP ユーザー アカウントで確認すると、作成されたディレクトリがパーミッション 777 で表示されますが、そのディレクトリへのアップロードは成功しません...

奇妙なことに、作成したディレクトリを手動で削除して (FTP 経由で) 新しいディレクトリを作成すると、アップロードが完全に機能します。

誰もこの問題を解決する手がかりを持っていますか? 私はそのサーバーの経験者ではありません:)ありがとう!

4

3 に答える 3

0

これを mkdir に使用します ユーザー名はアップロードフォルダー内のフォルダー名です

 if(!is_dir('uploads/'.$username . "/")) {
 mkdir('uploads/'.$username . "/", 0755);
 }`
于 2012-10-11T11:41:21.487 に答える
0

ディレクトリを作成するとき、作成マスクはumaskと AND で結合されることを考慮する必要があります。

$old = umask( 0 );
mkdir( 'folder', 0777, true );
umask( $old );
于 2012-10-11T11:41:53.213 に答える
0

ディレクトリのモードは、現在の umask の影響を受ける可能性があります。(mkdir-mode & (~umask))権限を持つことになります。

試す:

$oldmask = umask(0);
mkdir('folder', 0777);
umask($oldmask);
于 2012-10-11T11:41:55.370 に答える