【问题标题】:php unlink file renovatedphp取消链接文件已修复
【发布时间】:2012-02-02 11:33:35
【问题描述】:

我想删除 webroot 之外的 php(取消链接功能)文件。我的网络根在

C:\server\webroot\project\... in webroot I have folder named project and in there I have .php files.

关于文件目录的内容。它位于 C:\server\mp3_files...

我还在 httpd.conf 中创建了 mp3_files 目录的 Alias("mp3")


我在 C:\server\webroot\project\test.php 中编写这个脚本

脚本就是这样 =>

function delete($filename){
if (unlink("/mp3/" . $filename)){
    echo "Deleted";
} else {
    echo "No";
}
 }
delete("file.txt");

这个脚本在 php-errors => PHP-WARNING No such file or directory 中给出了我

我在 (test.php) html 中也有这个 =>

<a href="/mp3/file.txt">Download</a>

这有效(它会打开这个 file.txt)

所以我想知道为什么不能用标记函数“delete($filename)”删除?

【问题讨论】:

  • PHP 不知道 Apache 别名文件夹。您必须使用绝对或相对路径。

标签: php download unlink


【解决方案1】:

"/mp3/" 。 $filename 是一个绝对文件路径,与网络服务器根目录无关,因此假设您应该在 /server/mp3 下查看时,您的文件系统根目录下有一个 mp3 目录

编辑

它是 /server/mp3 还是 /server/mp3_files

您的帖子似乎与您的代码相矛盾

【讨论】:

  • 这里没有什么矛盾的,只是文件函数看不到别名是对的,使用 mp3_files 可以工作,但使用 Alias(mp3) 就不行
  • Apache 别名可以被 Apache 识别,但不能被 PHP...
  • 但是使用 File 我可以看到这个文件 => 所以在这种情况下别名有效,我不能好好相处
  • File 中的 URL 引用正在由 Apache 处理,而不是由 PHP 或文件系统处理,因此别名在这里有效
  • 我也有一个问题。这是 文件 有效的下载链接吗?我问是因为浏览器会打开它(不要下载),如果文件是 .mp3 文件 firefox 和 safari 下载,但 chrome 打开并且 opera 没有做任何事情(哈哈)。所以我很感兴趣这个 对下载文件有效吗?
【解决方案2】:

PHP 中的文件函数从文件系统根目录开始。

你应该写:

function delete($filename){
if (unlink("C:\\server\\mp3_files\\" . $filename)){
    echo "Deleted";
} else {
    echo "No";
}
 }
delete("file.txt");

【讨论】:

  • 我也试过了,但是结果是一样的 => PHP-WARNING No such file or directory
  • 我不使用 Windows Server,但我猜你不应该使用正斜杠,而是使用双反斜杠。
  • 是的,文件函数不知道别名。
  • 就是这样:)。还有一个关于如何制作下载链接的问题。我正在写 file 并且某些浏览器开始下载一些不下载,如果文件是 .txt 文件,它正在打开(不下载),为什么会这样?
【解决方案3】:

为确保内部 PHP 文件路径缓存获取正确信息,请在取消链接之前和之后使用 clearstatcache() 重置它。通常路径缓存会在每个与文件操作相关的 PHP 函数之后重置。如果您删除带有shell_exec('rm file.txt') 或类似名称的文件,则需要重置缓存。

http://php.net/manual/ini.core.php#ini.realpath-cache-sizehttp://php.net/manual/ini.core.php#ini.realpath-cache-ttl

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 2016-10-04
    • 2012-08-05
    • 2017-05-06
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多