8

Windows Server 2003 Enterprise ボックスで PHP 5.2.6 を実行しています。IIS は、匿名アクセスを拒否し、統合 Windows 認証を使用するように設定されています。

PHP スクリプトを使用して、Web フォームからアップロードされたファイルを保存しています。ファイルは一時フォルダーにアップロードされ、スクリプトは Web フォームからの他の変数に応じてファイル名とパスを作成します。その後、スクリプトは PHP の move_uploaded_file() を使用して一時ファイルを最終的な場所に移動します。すべて正常に動作します。つまり、人々はファイルをアップロードしているので、グループの全員がファイルを見ることができ、ファイルはスクリプトによって整理されます。

私の問題は、最終的な場所にあるファイルに奇妙な権限があることです。一時的な場所または最終的な場所からのアクセス許可で終わることはありません。一時的な場所と最終的な場所の両方に同じ権限があります。所有者と管理者の完全な権限。2 つの特定の AD セキュリティ グループの読み取りと読み取り/実行。最終的なファイルには、所有者と管理者の完全な権限のみが含まれます。そのため、管理者と元のアップロード者はファイルを表示しても問題ありませんが、グループ内の他のすべてのユーザーは、アクセスしようとすると「許可が拒否されました」となります。

どんなアイデアや提案も大歓迎です!ありがとう!

4

2 に答える 2

8

move_uploaded_fileのphpページから(nb:これは私にとってはうまくいきました):

Windows および IIS で PHP を使用している場合は、php.ini の「upload_tmp_dir」の値を、Web サイトのディレクトリがあるディレクトリに設定し、そのディレクトリを作成してから、Web サイトに設定したのと同じ権限を設定する必要があります。ディレクトリ。そうしないと、ファイルをアップロードして C:\WINDOWS\Temp に保存した後、それを Web サイト ディレクトリに移動すると、アクセス許可が正しく設定されません。ImageMagick の convert ユーティリティのようなものでそのファイルを操作したい場合、これは問題を引き起こします。

于 2009-09-11T00:31:30.660 に答える
4

これはmove_uploaded_file()関数の問題のようです:http:
//us3.php.net/move_uploaded_file
以下のコメントを見て、copy()に関するFlorianのコメントに注意してください。

copy()は問題を解決しますか?: http:
//us3.php.net/manual/en/function.copy.php

于 2008-10-15T18:52:06.433 に答える