为了账号安全,请及时绑定邮箱和手机立即绑定

求前辈帮忙看下,从APP传来的多个图片上传PHP后台处理接口是否正确

求前辈帮忙看下,从APP传来的多个图片上传PHP后台处理接口是否正确

PHP
千巷猫影 2019-03-11 14:50:25
$file = $_FILES['equipImg']; //得到传输的数据,以数组的形式 //print_r($file);exit; $name = $file['name']; //得到文件名称,以数组的形式 $upload_path = "../data/app/equip/".date("Y/m/d/"); //上传文件的存放路径 make_dir($upload_path); foreach ($name as $k=>$names){ $type = strtolower(substr($names,strrpos($names,'.')+1));//得到文件类型,并且都转化成小写 $allow_type = array('jpg','jpeg','gif','png','bmp'); //定义允许上传的类型 //把非法格式的图片去除 if (!in_array($type,$allow_type)){ unset($name[$k]); } } $equipImg = ''; foreach ($name as $k=>$item){ $type = strtolower(substr($item,strrpos($item,'.')+1));//得到文件类型,并且都转化成小写 $uploadname = time().mt_rand(100,999).".".$type; //$uploadname = time().$name[$k]; if (move_uploaded_file($file['tmp_name'][$k],$upload_path.$uploadname)){ $equipImg .= ','.date("Y/m/d/").$uploadname; }else{ retrunJson(-1, '设备图上传失败'); } } $equipImg = ltrim($equipImg, ","); 最后将$equipImg插入到对应数据库的equipImg字段下(字段中为字符串形式,多个图片路径中间以逗号,来分隔) 在与app调试时候(比如安卓或者ios)发现有问题,接不到多个图片,但是如果我用php的方法去测试,比如<input type="file" name="equipImg[]"><input type="file" name="equipImg[]"><input type="file" name="equipImg[]"> 这种形式去测试这个多图上传,是没问题的,都正常但是因为我不了解APP那边怎么做的,是不是和php的equipImg[]这种形式有区别,才导致问题的 (一次性多图提交,最多不超过5张图) 所以请有经验的大佬,能帮忙看下,我这边接app传来的多图是不是有问题,不胜感激
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

存在的问题如下:

1.文件存储路径一般是绝对路径 ,不要写相对路径,路径配置成常量。
2.你需要判断$_FILES[] 是否为空,并且图片数量不能大于5。
3.每张图片的大小也没加限制,你这样会把存储服务器撑爆的。
4.你每次都会去make_dir 一下,应该是先判断文件夹是否存在,如果不存在才会创建。
5.另外你上的代码,毫无可读性,健壮性,毫无排版,更别提代码复用了,让我一看就没兴趣往下看了。

查看完整回答
反对 回复 2019-03-18
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

我认为需要弄清楚的是,APP端那边,是一次性批量多图提交,还是每张图循环提交上传。这是你要和APP开发那边对接清楚。

查看完整回答
反对 回复 2019-03-18
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

是否有人能提供一下建议呢

查看完整回答
反对 回复 2019-03-18
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

不管APP是怎么传图的,一般就是post,具体传过来的数据,你打印出来看看,我看你那有print 为什么不把结果也贴出来

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 384 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信