5

我有一个脚本,它通过 PUT 请求接收大文件上传。这些文件在上传时会即时完成一些处理。有时我们可以检测到文件在前几个字节中无效,因此我们会die()显示错误消息。唯一的问题是客户端仍然发送剩余的数据,这是一个巨大的浪费。有没有办法关闭传入的连接?

代码:

$fp = fopen('php://input', 'rb');

// Do some data checking here
if( <invalid> ) {
    fclose($fp);
    die('Error');
}

stream_socket_shutdown看起来它可以完成这项工作,但它没有效果。

有没有办法做到这一点?即使我必须为此编写扩展名?

4

1 回答 1

1

您可能想试一试,看看这是否正确终止了连接:

$fp = fopen('php://input', 'rb');

// Do some data checking here
if( <invalid> ) {
    fclose($fp);
    header("Content-Length: 0");
    header("Connection: close");
    flush();
    die('Error');
}
于 2012-06-01T14:58:05.493 回答