php中怎样才能不执行$_FILES,我的意思是有时需要上传图片,有时不需要。怎么弄

我的表单里有时需要上传照片,有时不需要,但是,上传的文件的为空时,总是不能正确的执行下下去,应该加怎么样的一个判断,才能实现这一功能。求大神回复啊。。。。... 我的表单里有时需要上传照片,有时不需要,但是,上传的文件的为空时,总是不能正确的执行下下去,应该加怎么样的一个判断,才能实现这一功能。求大神回复啊。。。。 展开
 我来答
匿名用户
2014-08-01
展开全部

不是那样的, empty函数是判断变量是否为空, 而$_FILES是一个数组, 无论有没有上传图片,这个数组并不会是空的, 所以, 用empty函数显然是不可行的!

$_FILES这个数组中有一个元素, error

这样元素是返回上传错误的一个代码, 而正常上传的情况下,也就是有图片上传, 并且上传需要的各种情况、环境都满足, 那么这个元素的值是0, 反之, 就会返回响应的错误代码数字( 0 - 5 好像是)

所以, 有没有上传图片, 可以根据这个元素来判断

if ( !$_FILES['file']['error'] ) {
  这里写上传代码

}

至于你说到的函数区别, empty函数是判断变量是否为空, 是空的话返回TRUE, 不为空的话, 返回false

而函数isset是判断变量是否已设定, 返回TRUE, 反之着返回false

s524797336
2014-08-01 · TA获得超过180个赞
知道小有建树答主
回答量:126
采纳率:100%
帮助的人:187万
展开全部
if(!empty($_FILES)){
    //此处是上传代码
}
追问
为什么用isset()函数不行,它和!empty()不是等同的吗
追答
因为$_FILES一直都在 只不过如果没传文件 他是个 空的 array(); 而不是完全没定义的变量,所以必须用empty来判断

而网友采纳的那个是错的,只有上传文件后才有某个文件的error状态值
他解释的empty用法也是错的
empty大多用来检查数组是否为空,对,他可以检查空数组,空数组返回true,否则false。
isset大多用来检查变量是否存在,而$_FILSE一定是存在的一个数组!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猪二爷o0
2014-08-01 · 超过164用户采纳过TA的回答
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:199万
展开全部
你把这个上传单独做处理不就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式