使用 Jakarta HttpClient 和 PHP 上传文件
本文介绍了一种使用 Java 的 Jakarta HttpClient 库将文件上传到运行 PHP 的 Apache 服务器的解决方案版本 4.0 beta2。
最初,提供的 Java 代码导致PHP 脚本无法检测到上传的文件。该问题源于 Java 类中的错误配置,该类使用了 FileEntity 对象而未显式指定多部分参数。
正确的 Java 实现:
修订后的 Java 代码包含使用 MultipartEntity 正确格式化 HTTP 请求:
MultipartEntity mpEntity = new MultipartEntity(); ContentBody cbFile = new FileBody(file, "image/jpeg"); mpEntity.addPart("userfile", cbFile); httppost.setEntity(mpEntity);
此配置有效地创建了一个多部分 HTTP POST 请求二进制附件,符合 PHP 脚本的要求。
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中文网其他相关文章!