改成
if (!empty($res)) return $res;
就不报错了,你试试
因为手册写到了empty不报错,
而上面的代码等同于if(!is_null($res)) return $res;
所以报错不影响上传成功
给每个文件的dest一个默认值吧,或者设置一下PHP的错误等级,或者在取这个值的时候先isset一下
那你觉得用switch写更简单还是elseif更简单呢
你可以改成字符串,然后对比一下哪个更好
也还是通过post
22366135 bytes=21M,8388608 bytes=8M ,说明你上传的是21M多的大文件,而这个限制的8M是您的php.ini配置文件中post_max_size=8M,限制的上传文件最大值post_max_size=8M,post方式发送数据的最大值->就是一次性post上传文件总大小不能超过设定的post_max_size值,您可以更改为1G试下,保证想传多少就多少,但是是没有匹配相应的错误号的(错误号只有0-8,且没有5),但它也会直接告诉你就是你自己的配置php.ini配置文件中设定post_max_size=8M导致的,你改掉就不会报错了
看看error报错代码是多少,对应的去查查
我只知道一种方法 是在函数之前加上 /** 然后按回车
数据库在哪都行啊 新建一个文件也可以,看起来利索些
把之前的文件包括进来就行了 sql语句就在数据库的页面写
写个数据库连接文件conn.php ,然后 在doaction.php里面 include_once引入之后,在下面就可以用了
上传失败不就是空的吗
不知所措
实践出真知
你要把doaction5 贴出来 才知道啊
因为你选择的文件有一些扩展名不是图片类型的
if ($flag&&in_array($ext,$allowExt)) {
if (!getimagesize($fileInfo['tmp_name'])) {
$res['mes'] = $fileInfo['name'].'不是真实图片类型';
}
加上in_array($ext,$allowExt)就行了,希望采纳谢谢
默认屏蔽notice错误了吧
在最前面加上error_reporting(E_ALL ^ E_NOTICE);
此函数作用于图片类型,因为是假图片,当然读取错误咯,前面加个@吧
if($res) return $res 改成 if(!empty($res)) return $res
课程开始就说了,需要修改php.ini配置,post的限制默认就是8M,在文件中找到参数post_max_size,并把它的值改成你需要的大小。当然也有可能是参数upload_max_filesize没有修改,它的预设值是2M。修改保存以后很重要的一点,重启Apache
默认值一般写常量,也就是$path='./upload',但是也可以用变量,例如定义了一个全局变量$allPath,那么这里可以用$path=$allPath;
你的dest变量未定义,你在使用之前帮这个变量赋值就好了,它代表的应该是指定的目录,写相对路径就好。
upload
没有$files这个变量,因为直接遍历$_FILE这个值,而不是通过函数的参数变量进行传入,那每次调用这个方法就有点奇怪了。$_FILE,我是改成调用这个函数的时候需传递文件信息过来,这样就不会报这个错误了
function getfiles($fileinfo){ $i = 0; foreach($fileinfo as $file){ if(is_string($file['name'])){ $files[$i] = $file; $i++; }else if(is_array($file['name'])){ foreach($file['name'] as $key=>$val){ $files[$i]['name'] = $file['name'][$key]; $files[$i]['type'] = $file['type'][$key]; $files[$i]['tmp_name'] = $file['tmp_name'][$key]; $files[$i]['size'] = $file['size'][$key]; $files[$i]['error'] = $file['error'][$key]; $i++; } } } return $files; }
我也不懂
同问
按住CTRL+鼠标左键 点击就能跳转了
我开始也没搞懂,其实文件域的名字叫什么不重要,关键是老师写的函数可以智能判断各种不同的类型,实现上传成功。
你可以在html里面的input框加上name属性