php $_GET 不要将我的文档名称带空格,因此我无法取消链接?

发布于 2024-11-26 16:59:21 字数 624 浏览 1 评论 0 原文

我有一个问题,我尝试使用以下代码检索文件:

<?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";

}


?>

问题在于,如果我的文件名是文档名.pptx(包含空格),则 $file = $_GET['file']; 行) $_GET 只是获取文档,所以我的文件永远不会被删除,有人可以帮助我吗?非常感谢帮助

I have a problem I tried to retrieve a file with this code:

<?php


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

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

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

and my 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";

}


?>

The problem is that with the line $file = $_GET['file'];, if my files name is document name.pptx (space included) the $_GET just takes document, so my file never gets deleted, can someone help me? Help really appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

○闲身 2024-12-03 16:59:21

尝试使用 urlencode() 和 urldecode(),这应该在通过 URL 传递文件名时对文件名中的空格进行编码

所以

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

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

Try using urlencode() and urldecode(), this should encode the space in the filename when passing it over the URL

So

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

and

$file = urldecode($_GET['file']);
自在安然 2024-12-03 16:59:21

您需要更改此行:

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 发送。

You need to change this line:

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

To

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

See urlencode. It will convert your space to %20, so that it can be sent over GET.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文