ホームページ >バックエンド開発 >PHPチュートリアル >PHP環境でファイルがアップロードできない問題の解決策_PHPチュートリアル
1. Web サイトのディレクトリの権限を確認します。
アップロードディレクトリに書き込み権限があるかどうか。
2. php.ini 設定ファイル
php.ini には、アップロードに影響する次の要素があります:
file_uploads オンにするかどうか オンにする必要があります
HTTP ファイルのアップロードを許可するかどうか
post_max_size = 8M
PHP によって受け入れられる POST データの最大長。この設定はファイルのアップロードにも影響します。
大きなファイルをアップロードするには、値は「upload_max_filesize」より大きい必要があります。
設定スクリプトでメモリ制限が有効になっている場合、「memory_limit」もファイルのアップロードに影響します。
一般的に、「memory_limit」は「post_max_size」より大きくなければなりません。
upload_max_filesize = 2M
アップロードできるファイルの最大サイズ
upload_tmp_dir = C:windowstemp
ファイルをアップロードするときにファイルが保存される一時ディレクトリ。 PHP プロセス ユーザーが書き込み可能なディレクトリである必要があります。指定しない場合、PHP はシステムのデフォルト値
default_socket_timeout = 60
ソケット タイムアウト (秒単位)
max_execution_time = 30
各スクリプトの最大許容実行時間 (秒単位) を使用します。デフォルトは 30 秒です。
このパラメータは、劣悪なスクリプトがサーバー リソースを際限なく占有するのを防ぐのに役立ちます。
注: 「max_execution_time」は、スクリプト自体の実行時間にのみ影響します。
system()/sleep() 関数の使用、データベース クエリ、ファイルのアップロードなど、スクリプトの実行以外に費やされた時間は含まれません。
セーフ モードでは、ini_set() を使用して実行時にこの設定を変更することはできません
max_input_time = 60
各スクリプトが入力データ (POST、GET、アップロード) を受信するのに許可される最大時間 (秒単位)
memory_limit = 128M
スクリプトが適用できる最大メモリバイト数を設定します。
これは、劣悪なスクリプトがサーバー上のすべてのメモリを消費するのを防ぐのに役立ちます。
このディレクティブを使用するには、コンパイル中にアクティブ化する必要があります。
そのため、configure 行には --enable-memory-limit を含める必要があります。
メモリ制限が必要ない場合は、-1 に設定する必要があります
php4.3.2 以降、memory_limit が設定されている場合、memory_get_usage() 関数は次のようになります利用可能です
3. Upload_tmp_dir ディレクトリの権限
PHP の設定に問題がない場合、upload_tmp_dir によって設定されたディレクトリの権限に問題がある可能性があります。フル コントロールを除く IIS_WPG アクセス許可、ユーザーの読み取りおよび書き込みアクセス許可、およびフル コントロールを除く NETWORK SERVER アクセス許可を追加します。
4. ZEND が有効になっている場合は、Temp フォルダーに ZendOptimizer.MemoryBase@SYSTEM と ZendOptimizer.MemoryBase@NETWORKSERVICE があるかどうかを確認します。
5. 上記のいずれも機能しない場合は、おそらくここに問題があると考えられます。Windows ディレクトリでゲスト グループが無効になっているかどうかを確認し、Windows ディレクトリのユーザー グループに読み取り権限と実行権限を与えます。