【发布时间】:2012-03-02 06:21:53
【问题描述】:
这些是步骤:
- 来自浏览器的 POST 表单(文件/图像输入)发送到 PHP 服务器。
- PHP 服务器然后使用 fsockopen 到 Java (GlassFish/Jersey) REST 服务,将图像作为内容发送,以便在那里完成更高级的成像工作,并将生成的图像返回给 PHP 服务器(或只返回一个图片的 URI)。
- 然后 PHP 服务器将结果 (img src= ..) 在 HTML 文档中回显给用户。
在第一步中获取图像及其所有属性效果很好,但我需要帮助在从 PHP 到 Web 服务的 POST 请求中正确设置标头。
当前代码:
$fp = fsockopen("domain..", 80, $errno, $errstr, 30);
$contentlength = $_FILES["photo_file"]["size"];
$imageref = $_FILES["photo_file"]["tmp_name"];
$out = "POST /Uri to resource .. HTTP/1.1\r\n";
$out .= "Host: http://... \r\n";
$out .= "Connection: Keep-Alive\r\n";
$out .= "Content-type: multipart/mixed\r\n";
$out .= "Content-length: $contentlength\r\n\r\n";
$out .= "$imageref";
fwrite($fp, $out);
$theOutput;
while (!feof($fp))
{
$theOutput .= fgets($fp, 128);
}
echo $theOutput;
fclose($fp);
向浏览器回显:“HTTP/1.1 400 Bad Request Content-Type: text/html Content-Length: 717”。
所以我需要格式更好的标头才能通过 REST Web 方法。如果我应该实现这一点,有人知道在球衣网络方法中使用什么参数来访问图像吗? 对于标准 HTML 表单,它是这样的:
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response getFullImage(@FormDataParam("photo_file") InputStream imageIS {..ImageIO.read(imageIS)..}
希望对更好的架构提出建议,以便在 HTML 中实现这一点。
干杯
【问题讨论】:
标签: java php post file-upload http-headers