php $ _GET不带空格我的文档名称所以我无法取消链接?

时间:2011-07-27 23:23:46

标签: php get unlink

我遇到问题我尝试使用此代码检索文件:

<?php


$path= "./uploadedfiles/";
$dir= dir($path);

while ($file = $dir->read()) {

        echo $file . "<a href=deletefile.php?file=$file>Delete</a><br>";         
}
$dir->close();
?>

和我的deletefile.php

<?php
$file = $_GET['file'];

echo $file;

$path =  'C:/wamp/www/project/uploadedfiles/'.$files;

if(unlink($path)){

    echo "File deleted";
}else{
    echo "Erro no uploaded";

}


?>

问题是使用行$ file = $ _GET ['file'] ;,如果我的文件名是文件name.pptx(包含空格),$ _GET只需要文档,所以我的文件永远不会被删除,可以谁来帮帮我?帮助非常感谢

2 个答案:

答案 0 :(得分:0)

尝试使用urlencode()和urldecode(),这应该通过URL传递文件名中的空格

所以

echo $file . "<a href=deletefile.php?file=" . urlencode($file) . ">Delete</a><br>";

$file = urldecode($_GET['file']);

答案 1 :(得分:0)

您需要更改此行:

echo $file . "<a href=deletefile.php?file=$file>Delete</a><br>";

echo $file . '<a href="deletefile.php?file='.urlencode($file).'">Delete</a><br>';

urlencode。它会将您的空间转换为%20,以便可以通过GET发送。