3

我知道我们可以使用

file_get_contents("php://input");

但是我如何在 put 请求中获取文件名?

4

2 回答 2

6

文件名不作为请求的一部分发送。如果要在服务器端获取文件名,则必须通过其他方式传递它,即查询参数。

于 2013-01-23T13:07:35.450 回答
0

如果您在PUT 方法支持页面中使用 PUT,您可以获得他们 PUT 的文件名$_SERVER['REQUEST_URI']

例如,如果我有接收 PHP 脚本

<?php
/* PUT data comes in on the stdin stream */
$request_body = @file_get_contents('php://input'); 

error_log("Received PUT,  filename: {$_SERVER['REQUEST_URI']}, " . strlen($request_body) . " bytes");
?>

当我发出 CURL 时:

curl -X PUT -T "localfile.txt" http://example.com/interesting/target/name.txt

我得到输出(在我的错误日志中)

Received PUT,  filename: interesting/target/name.txt, 4931 bytes

如果您问我如何找出源文件系统 (localfile.txt) 中文件的名称,我认为这不会被传递。

于 2013-02-22T21:02:18.410 回答