php unlink文件翻新

时间:2012-01-04 15:06:12

标签: php download unlink

我想删除webroot以外的php(unlink函数)文件。我的网络根目录在

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

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

我也在mp3_files目录的httpd.conf 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没有此类文件或目录

我也有(test.php)html格式这个=>

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

这样可行(它打开此文件.txt)

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

3 个答案:

答案 0 :(得分:2)

“/ mp3 /”。 $ filename是一个绝对的文件路径,而不是相对于webserver root,所以它假设你在文件系统根目录下有一个mp3目录,你应该在/ server / mp3下查看

修改

是/ server / mp3还是/ server / mp3_files

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

答案 1 :(得分:2)

PHP中的文件功能来自文件系统根目录。

你应该写:

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

答案 2 :(得分:1)

要确保内部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