Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Perl或PHP的HTTP多部分响应_Php_Perl_Http_Response_Multipart - Fatal编程技术网

使用Perl或PHP的HTTP多部分响应

使用Perl或PHP的HTTP多部分响应,php,perl,http,response,multipart,Php,Perl,Http,Response,Multipart,是否可以像多部分请求一样提供HTTP多部分响应(使用Perl/PHP)?这个场景是这样的,我想提供一个URL,其中包含EmployeeID的参数,作为回报,响应应该包括员工的照片、最新工资单以及姓名、年龄和地址等信息。接收端不是一个浏览器,但它将是一个获取此响应并在以后处理它们的程序。你知道怎么做吗 为了提供关于我上述问题的更多信息,我必须向我的朋友提供一个URL,他将以编程方式接收响应。例如(在Perl中): 我的应用程序不仅要响应数据,还要响应文件!我被要求返回多部分响应 我现在不知道如何从

是否可以像多部分请求一样提供HTTP多部分响应(使用Perl/PHP)?这个场景是这样的,我想提供一个URL,其中包含EmployeeID的参数,作为回报,响应应该包括员工的照片、最新工资单以及姓名、年龄和地址等信息。接收端不是一个浏览器,但它将是一个获取此响应并在以后处理它们的程序。你知道怎么做吗

为了提供关于我上述问题的更多信息,我必须向我的朋友提供一个URL,他将以编程方式接收响应。例如(在Perl中):

我的应用程序不仅要响应数据,还要响应文件!我被要求返回多部分响应

我现在不知道如何从编码本身开始。谷歌搜索“多部分响应”并没有返回我可以学习和开始的页面。然而,chansen的评论和他的代码示例确实很有帮助。非常感谢。

我把我的原稿当作回应

#!/usr/bin/perl
use strict;
use warnings;

use HTTP::Response;

my $response = HTTP::Response->new(
    200, 'OK', [ 'Content-Type' => 'multipart/form-data' ]
);

$response->protocol('HTTP/1.1');
$response->date(time);
$response->server('Foo/1.0');

my $name = HTTP::Message->new([
    'Content-Type'        => 'text/plain; charset=UTF-8',
    'Content-Disposition' => 'form-data; name="name"',
], 'John Doe');

$response->add_part($name);

my $note = HTTP::Message->new([
    'Content-Type'        => 'text/plain; charset=UTF-8',
    'Content-Disposition' => 'form-data; name="note"',
], <<'NOTE');
Resources:
  o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Message.pm
  o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Response.pm
  o http://tools.ietf.org/html/rfc2388
  o http://tools.ietf.org/html/rfc2616
NOTE

$response->add_part($note);

my $blob = HTTP::Message->new([
    'Content-Type'        => 'application/octet-stream',
    'Content-Disposition' => 'form-data; name="blob"; filename="blob.bin"',
]);
$blob->add_content('a chunk');
$blob->add_content(' of data');

$response->add_part($blob);

print $response->as_string;

@srikanth vittal这应该让你开始了。@chansen谢谢你的链接。这正是我想要的。我还更新了我的问题的更多细节。一位主持人重新打开了这个问题,删除了一些评论,使现有的评论断章取义,我希望有一个选项,显示完整的历史,包括主持人不称职。
#!/usr/bin/perl
use strict;
use warnings;

use HTTP::Response;

my $response = HTTP::Response->new(
    200, 'OK', [ 'Content-Type' => 'multipart/form-data' ]
);

$response->protocol('HTTP/1.1');
$response->date(time);
$response->server('Foo/1.0');

my $name = HTTP::Message->new([
    'Content-Type'        => 'text/plain; charset=UTF-8',
    'Content-Disposition' => 'form-data; name="name"',
], 'John Doe');

$response->add_part($name);

my $note = HTTP::Message->new([
    'Content-Type'        => 'text/plain; charset=UTF-8',
    'Content-Disposition' => 'form-data; name="note"',
], <<'NOTE');
Resources:
  o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Message.pm
  o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Response.pm
  o http://tools.ietf.org/html/rfc2388
  o http://tools.ietf.org/html/rfc2616
NOTE

$response->add_part($note);

my $blob = HTTP::Message->new([
    'Content-Type'        => 'application/octet-stream',
    'Content-Disposition' => 'form-data; name="blob"; filename="blob.bin"',
]);
$blob->add_content('a chunk');
$blob->add_content(' of data');

$response->add_part($blob);

print $response->as_string;
HTTP/1.1 200 OK
Date: Thu, 24 Nov 2011 10:03:25 GMT
Server: Foo/1.0
Content-Type: multipart/form-data; boundary=xYzZY

--xYzZY
Content-Type: text/plain; charset=UTF-8
Content-Disposition: form-data; name="name"

John Doe
--xYzZY
Content-Type: text/plain; charset=UTF-8
Content-Disposition: form-data; name="note"

Resources:
  o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Message.pm
  o http://search.cpan.org/dist/HTTP-Message/lib/HTTP/Response.pm
  o http://tools.ietf.org/html/rfc2388
  o http://tools.ietf.org/html/rfc2616

--xYzZY
Content-Type: application/octet-stream
Content-Disposition: form-data; name="blob"; filename="blob.bin"

a chunk of data
--xYzZY--