php 中file_exists函数判断临时文件 显示false

dump(file_exists($_FILES['pic_path']['tmp_name'][0]));exit;

pic_path 是前台input的name

就是在上传的时候判断临时文件是否存在 为啥是false

阅读 3.7k
4 个回答

我的代码例子

$file = $_FILES['image'];
var_dump($file['tmp_name']);
var_dump(file_exists($file['tmp_name'][0]));die;

结果如下

array(2) { [0]=> string(27) "C:\Windows\Temp\php2456.tmp" [1]=> string(27) "C:\Windows\Temp\php2457.tmp" 
bool(true)

如果你的pic_path是存的数组,同时临时目录确实有该临时文件应该是没问题的。

如果你前端上传的是只有一个 <input type=file /> 那么后面是没有下标[0]的.

建议先打印出所有的数据确定 $_FILES['pic_path']['tmp_name'] 是一个字符串数字, 还是只是一个字符串.

如果是一个字符串时, 例如 $_FILES['pic_path']['tmp_name']='/tmp/php/php1234';, 那么 $_FILES['pic_path']['tmp_name'][0] 的值就是 '/', 如果你是Windows系统, 那么就是盘符的字母, 你判断一个 'C' 文件是否存在, 答案可能就是否定的, 除非你的php文件所在目录刚好有一个文件名为 'C' 的文件

var_dump($_FILES['pic_path']['tmp_name']);

用上面的代码先看看整个变量的结构先.

环境问题 刚开始用的php7.0 现在换回5.6 就显示true了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题