PHP unlink();没有相应的文件和目录

时间:2017-03-25 20:17:36

标签: php

我到处寻找这个问题但无法找到解决方案。我有这个:

parent.addChild(inflater.inflate(R.layout.box_npc);

.cer会返回错误:<?php $file_name = $_GET['name']; $file_delete = '../u/' . $file_name; unlink($file_delete); //header("location: $file_delete"); ?> ,但如果我尝试unlink,则会打开文件(本例中为图片)。

我可能在哪里错?

4 个答案:

答案 0 :(得分:0)

经过一些研究,unlink()似乎不允许你使用相对路径(用“../”)。

这是另一种选择:

<?php
  $file_name = $_GET['name'];
  $file_delete = dirname(__FILE__, 2) . '\\u\\' . $file_name;
  unlink($file_delete);
?>

$file_delete这是您要删除的文件的绝对路径。

提醒:/用于Unix系统,\用于Windows。

PHP doc:
- http://php.net/manual/en/function.unlink.php
- http://php.net/manual/en/function.dirname.php

答案 1 :(得分:0)

我的代码也有同样的问题。我为解决该问题所做的事情是:

首先执行:

git gc

它输出:string(23)(my-image-path)

当我开始计算字符串时,我发现了22个字符。我想知道23号在哪里? 我仔细检查并数了数,最后发现图像路径的末尾有空间。所以我用php trim()函数删除空格。喜欢,

git config --global core.askpass "git-gui--askpass"

第二:现在执行,

            var_dump($image_variable) // var_dump($file_delete) in your case.

或喜欢检查

            $trimed_path = trim($image_variable)  // trim($file_delete) in your case.

答案 2 :(得分:0)

花了我几个小时才弄清楚。如上所述,谈到路径时,unlink()很挑剔。

解决方案是:

1st)定义路径(这是 Wordpress 的操作方式)

define( 'ROOTPATH', dirname(dirname(__FILE__)) . '/' );

2)做:

unlink(ROOTPATH.'public_html/file.jpg');

答案 3 :(得分:0)

首先获取要删除文件的绝对路径,并在删除之前检查文件是否存在:

 $file_name = $_GET['name'];
 $base_dir = realpath($_SERVER["DOCUMENT_ROOT"]);
 $file_delete =  "$base_dir/your_inner_directories_path/$file_name";
 if (file_exists($file_delete)) {unlink($file_delete);}