响应 cURL 请求时使用什么内容处置?



假设我们有一个客户端(实际上是服务器端PHP脚本)和一个服务器(也是服务器端PHP脚本)。

客户端通过cURL向服务器发出 HTTP 请求。客户端接受text/csv,因此设置了相应的标头,并且客户端希望将响应保存到文件中,因此正确设置了CURLOPT_FILE选项。

问题是服务器在处理请求并发回 CSV "编码"内容时,是否应该使用inlineattachment作为Content-Disposition标头的值?

一个非常简单的测试伪代码:服务器执行以下操作:

if (file_exists($attachment_location)) {
header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
header("Cache-Control: public"); // needed for internet explorer
header("Content-Type: text/csv");
header("Content-Length:".filesize($attachment_location));
header("Content-Disposition: inline");
readfile($attachment_location);
die();
} else {
header($_SERVER["SERVER_PROTOCOL"] . " 404 Not found");
}

或者应该是这样的:

<?php
$attachment_location = "./c3m.csv";
if (file_exists($attachment_location)) {
header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
header("Cache-Control: public"); // needed for internet explorer
header("Content-Type: text/csv");
header("Content-Transfer-Encoding: Binary");
header("Content-Length:".filesize($attachment_location));
header("Content-Disposition: attachment; filename=c3m.csv");
readfile($attachment_location);
die();
} else {
header($_SERVER["SERVER_PROTOCOL"] . " 404 Not found");
}

cURL 不关心内容处置,所以它应该与你赋予它的值无关。

相关内容

  • 没有找到相关文章

最新更新