php中怎样才能不执行$_FILES,我的意思是有时需要上传图片,有时不需要。怎么弄
我的表单里有时需要上传照片,有时不需要,但是,上传的文件的为空时,总是不能正确的执行下下去,应该加怎么样的一个判断,才能实现这一功能。求大神回复啊。。。。...
我的表单里有时需要上传照片,有时不需要,但是,上传的文件的为空时,总是不能正确的执行下下去,应该加怎么样的一个判断,才能实现这一功能。求大神回复啊。。。。
展开
2014-08-01
展开全部
不是那样的, empty函数是判断变量是否为空, 而$_FILES是一个数组, 无论有没有上传图片,这个数组并不会是空的, 所以, 用empty函数显然是不可行的!
$_FILES这个数组中有一个元素, error
这样元素是返回上传错误的一个代码, 而正常上传的情况下,也就是有图片上传, 并且上传需要的各种情况、环境都满足, 那么这个元素的值是0, 反之, 就会返回响应的错误代码数字( 0 - 5 好像是)
所以, 有没有上传图片, 可以根据这个元素来判断
if ( !$_FILES['file']['error'] ) {
这里写上传代码
}
至于你说到的函数区别, empty函数是判断变量是否为空, 是空的话返回TRUE, 不为空的话, 返回false
而函数isset是判断变量是否已设定, 返回TRUE, 反之着返回false
展开全部
if(!empty($_FILES)){
//此处是上传代码
}
追问
为什么用isset()函数不行,它和!empty()不是等同的吗
追答
因为$_FILES一直都在 只不过如果没传文件 他是个 空的 array(); 而不是完全没定义的变量,所以必须用empty来判断
而网友采纳的那个是错的,只有上传文件后才有某个文件的error状态值
他解释的empty用法也是错的
empty大多用来检查数组是否为空,对,他可以检查空数组,空数组返回true,否则false。
isset大多用来检查变量是否存在,而$_FILSE一定是存在的一个数组!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把这个上传单独做处理不就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询