【发布时间】:2011-07-22 16:59:25
【问题描述】:
使用这个 php 脚本,我可以调用 web 服务。文件名将记录在数据库中。它们被请求但不存在。
$url = "http://test.com/test.php?request=文件名.jpg"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $data = curl_exec($ch); 打印($数据); curl_close($ch);问题是“文件名.jpg”。它没有编码。 当它到达网络服务时,请求 URI 看起来像这样
["REQUEST_URI"]=> 字符串(28) "/test/test.php?filename=file"它在第一个空格字符的开头截断 url。
我的问题是我无法控制人们如何发送此请求。当然它们应该是 urlencode 函数,但我不能强迫它们。
所以我需要一个解决方案来获取完整的 REQUEST URI,或者将此视为错误。
【问题讨论】:
-
正如你所说,你无法控制你会得到什么样的请求。你可以得到任何东西。所以我想唯一的方法是确保你有一个正确的
filename参数,其中包含一个有效的文件名(例如对扩展名的限制)。 -
不能那样做。有些文件真的没有扩展名。
-
如果人们发送 错误的 url - 那是他们的问题。
-
这是我的网络服务。我将存储此信息,因此它成为我的问题。作为任何无效的用户输入,必须有一种方法来检测问题。