如何在put请求中获取php中的文件名

时间:2013-01-23 12:09:14

标签: php put

我知道我们可以使用

在文件中读取放置请求
file_get_contents("php://input");

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:-1)

如果您在PUT Method Support页面中使用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)上找回的名称,我认为这不会被传递。