Jakarta HttpClient と PHP を使用したファイルのアップロード
この記事では、Java の Jakarta HttpClient ライブラリを使用して、PHP を実行している Apache サーバーにファイルをアップロードするためのソリューションを紹介します。バージョン4.0 beta2.
当初、提供された Java コードにより、PHP スクリプトはアップロードされたファイルの検出に失敗しました。この問題は、マルチパート パラメータを明示的に指定せずに FileEntity オブジェクトを使用した Java クラスの誤った構成に起因します。
正しい Java 実装:
改訂された Java コードには、次のものが組み込まれています。 MultipartEntity を使用して HTTP リクエストを適切にフォーマットします:
MultipartEntity mpEntity = new MultipartEntity(); ContentBody cbFile = new FileBody(file, "image/jpeg"); mpEntity.addPart("userfile", cbFile); httppost.setEntity(mpEntity);
この構成は効果的ですPHP スクリプトの要件に従って、バイナリ添付ファイルを含むマルチパート HTTP POST リクエストを作成します。
PHP スクリプト:
PHP スクリプトは単純なままです:
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n"; move_uploaded_file ($_FILES['userfile'] ['tmp_name'], $_FILES['userfile'] ['name']); } else { echo "Possible file upload attack: "; echo "filename '". $_FILES['userfile']['tmp_name'] . "'."; print_r($_FILES); }
正しい Java 実装と PHP スクリプトを使用すると、ファイルのアップロードが正常に処理されるようになります。
以上がJakarta HttpClient を使用してファイルを PHP サーバーに正常にアップロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。