php unlink 删除问题 php unlink 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 他不是说的很清楚了吗?No such file or directory 没有这样的文件或目录 先判断一下文件是否存在 再删除警告都提示说 文件或目录不存在了if(file_exists($fn)){ unlink($fn);} 你看下你的user_logo/目录看这个目录下是否存在这个文件没有就不删除 有则删除 加一个判断if(file_exists($fn)){//存在该文件 //todo 删除} 各位unlink(user_logo/d4d84f383714d5f3.jpg)提示是这样的,所以文件夹是文件名都有的。这个删除的文件与图片文件夹是同一目录 a.php user_logo加判断我也试了不行,但是文件与文件夹都是存在的。 为了证实这一点,请ptint_r(glob('user_logo/*'));贴出结果 Call to undefined function ptint_r()错误 我用别的读取了0=>326601fbd562175b.jpg1=>33020b4dfad41335.gif2=>4d2514d09a181e1b.jpg3=>c3f7050e4de83d13.gif4=>d436ccf10d8c8141.gif5=>d4d84f383714d5f3.jpg?> 文件是肯定有的0=>./user_logo/326601fbd562175b.jpg1=>./user_logo/33020b4dfad41335.gif2=>./user_logo/4d2514d09a181e1b.jpg3=>./user_logo/c3f7050e4de83d13.gif4=>./user_logo/d436ccf10d8c8141.gif5=>./user_logo/d4d84f383714d5f3.jpg 机器是不会骗你的,他说没有,那就是没有var_dump($fn == 'user_logo/d4d84f383714d5f3.jpg');贴出结果 bool(false)这样假,没有但是确实有unlink(user_logo1d8daa1bc872d00f.gif) 是这样,用户可以上传一张图片,如果修改重新上传就把旧的删除,旧的文件名在数据库$dlogo="select User_info_logo from site_user_info where User_info_id=".$_SESSION["userid"];$drow=mysql_query($dlogo);$rs=mysql_fetch_array($drow);$logomc=$rs['User_info_logo'];if($logomc){$base_dir="user_logo".$logomc;unlink ($base_dir); $base_dir="user_logo".$logomc;unlink ($base_dir); $base_dir="user_logo/".$logomc;一般不大可能这样存储文件名 /filename何况文件还是在子目录中 后面的是文件名,前面的是文件夹。刚少了/但都一样的结果Warning: unlink(user_logo/d4d84f383714d5f3.jpg) [function.unlink]: No such file or directory in目录文件都有,程序认为没有 在unlink php里面加这句,看看有什么输出。echo dirname(__FILE__).'user_logo/d4d84f383714d5f3.jpg'; 懒得看上面的了原帖中:unlink('abcdef.jpg'); 可以fn=$rs['abc']; unlink($fn); 不行你就把后面这个fn输出来 和'abcdef.jpg'比较一下把前面那个字符串操作成后面那个不就行了...不要觉得用了变量就会有影响 用不用变量都一样只要内容可以就可以... 用绝对路径,提示没有该文件和文件夹 就证明你路径错了。看看PHP文件和图片的相对位置 既然你用 file_exists 判断已经存在了, 又提示你文件不存在 那就检查你又没有删除权限吧. 有时候就是权限的事儿 這幾天我也碰到這個問題,其實文件是存在的,只是文件被其他線程給鎖定了沒有釋放出來,因此此時強制刪除提示錯誤就跟windows似的,有檔案正在使用的時候你如果要強行刪除這個文件肯定提示錯誤.問題我找到了,但是解決方法暫時沒有,希望高手指點 一路看下来,有个这样的“./abc/”0=>./user_logo/326601fbd562175b.jpg1=>./user_logo/33020b4dfad41335.gif2=>./user_logo/4d2514d09a181e1b.jpg3=>./user_logo/c3f7050e4de83d13.gif4=>./user_logo/d436ccf10d8c8141.gif5=>./user_logo/d4d84f383714d5f3.jpg 这就说明机器是在原来的地址加上了“./” 其实我也是来找答案的,数据库中存的是/abc/123.jpg unlink("/abc/123.jpg"); 是错的,unlink("./abc/123.jpg"); 就对了,我不明白为什么 我也是遇到了问题进了贴,最后发现其实是unlink($path);中$path的编码要注意,必须是utf-8格式。 关于if else的,我用eclipse老出现错误,谁遇到过麻烦告诉我怎么调试下 闲来无事,我也写个八皇后 mysql无法安装 如何将图片转为黑白并存为二进制文本? IE下载文件不全 MySQL数据删了一条数据,可不可以恢复啊? php不能读取查询参数串和$PATH_INFO 怎样获取FCKeditor中的值? 我以前的程序是在register_globals=On环境下设计的,现在想转到register_globals=Off,该怎么办? 求高人指教?PHP里怎么样实现连续播放音乐啊!!!急! PHP解析XML问题 怎样获得insert成功后的数值,mysql,没有id
No such file or directory 没有这样的文件或目录
警告都提示说 文件或目录不存在了if(file_exists($fn)){
unlink($fn);
}
没有就不删除 有则删除 加一个判断
if(file_exists($fn)){//存在该文件
//todo 删除
}
提示是这样的,所以文件夹是文件名都有的。
这个删除的文件与图片文件夹是同一目录 a.php user_logo
加判断我也试了不行,但是文件与文件夹都是存在的。
ptint_r(glob('user_logo/*'));
贴出结果
0=>326601fbd562175b.jpg
1=>33020b4dfad41335.gif
2=>4d2514d09a181e1b.jpg
3=>c3f7050e4de83d13.gif
4=>d436ccf10d8c8141.gif
5=>d4d84f383714d5f3.jpg
?>
0=>./user_logo/326601fbd562175b.jpg
1=>./user_logo/33020b4dfad41335.gif
2=>./user_logo/4d2514d09a181e1b.jpg
3=>./user_logo/c3f7050e4de83d13.gif
4=>./user_logo/d436ccf10d8c8141.gif
5=>./user_logo/d4d84f383714d5f3.jpg
var_dump($fn == 'user_logo/d4d84f383714d5f3.jpg');
贴出结果
这样假,没有但是确实有
unlink(user_logo1d8daa1bc872d00f.gif)
$dlogo="select User_info_logo from site_user_info where User_info_id=".$_SESSION["userid"];
$drow=mysql_query($dlogo);
$rs=mysql_fetch_array($drow);
$logomc=$rs['User_info_logo'];
if($logomc){
$base_dir="user_logo".$logomc;
unlink ($base_dir);
unlink ($base_dir); $base_dir="user_logo/".$logomc;
一般不大可能这样存储文件名 /filename
何况文件还是在子目录中
Warning: unlink(user_logo/d4d84f383714d5f3.jpg) [function.unlink]: No such file or directory in
目录文件都有,程序认为没有
echo dirname(__FILE__).'user_logo/d4d84f383714d5f3.jpg';
原帖中:
unlink('abcdef.jpg'); 可以
fn=$rs['abc']; unlink($fn); 不行
你就把后面这个fn输出来 和'abcdef.jpg'比较一下
把前面那个字符串操作成后面那个不就行了...不要觉得用了变量就会有影响 用不用变量都一样
只要内容可以就可以...
就跟windows似的,有檔案正在使用的時候你如果要強行刪除這個文件肯定提示錯誤.問題我找到了,但是解決方法暫時沒有,希望高手指點
0=>./user_logo/326601fbd562175b.jpg
1=>./user_logo/33020b4dfad41335.gif
2=>./user_logo/4d2514d09a181e1b.jpg
3=>./user_logo/c3f7050e4de83d13.gif
4=>./user_logo/d436ccf10d8c8141.gif
5=>./user_logo/d4d84f383714d5f3.jpg
这就说明机器是在原来的地址加上了“./” 其实我也是来找答案的,数据库中存的是/abc/123.jpg
unlink("/abc/123.jpg"); 是错的,unlink("./abc/123.jpg"); 就对了,我不明白为什么