【发布时间】:2017-11-09 12:34:38
【问题描述】:
file_exists 不工作。我看了几个例子,还是不行。程序未检测到该文件。我的文件路径是/var/www/osbs/PHPAPI/recording.mp3,网站根目录在osbs里面。该文件的位置在 PHPAPI 中,这就是为什么我没有将完整路径放在 file_put_contents 中的原因。该程序能够制作原始的recording.mp3,但不能制作它的任何附加版本。
<?php
$actual_name = pathinfo("PHPAPI/recording.mp3",PATHINFO_FILENAME);
$original_name = $actual_name;
$extension = pathinfo("PHPAPI/recording.mp3",PATHINFO_EXTENSION);
if ($_GET["RecordingUrl"]) {
if (file_exists("/var/www/osbs/PHPAPI/".$actual_name.".".$extension)) {
$actual_name = find_new_name($original_name, $extension);
}
else {
$actual_name = $original_name;
}
$name = $actual_name.".".$extension;
file_put_contents($name, file_get_contents($_GET["RecordingUrl"]));
}
function find_new_name ( $file, $extension ) {
$name = $file.".".$extension;
$i = 0;
while(file_exists("/var/www/osbs/PHPAPI/".$name)){
$new_name = $file.$i;
$name = $new_name.".".$extension;
$i++;
}
return $new_name;
}
?>
【问题讨论】:
-
这是一个巨大的安全问题:
file_get_contents($_GET["RecordingUrl"]) -
@greg0ire 我知道这只是为了测试。我通常会使用 $_POST
-
你太搞笑了
-
直接传递任何用户输入的 file_get_contents() 存在安全风险。
标签: php if-statement while-loop get