php一次上传多张图片,html5 multiple的使用。

  本文为博主原创,转载请声明。

  这是我在这里的第一篇博客,之所以在这里写博,是因为这个网站的好多技术博客帮助了我,谢谢。那么cnblog不支持markdown吗?好像“那么”这个关联词用得不对啊。

  言归正传,我是一个摄影爱好者,也是个php爱好者。有的时候需要把大量尺寸大高品质的“45度自拍图”批量处理,虽然现在我还不知道用php怎么原比例压缩图片。所以我就想先实现第一步,一次上传多张图片。好了。贴源码吧。

 1 print "<h1>上传文件</h1>";
 2 //HTML5 <input> multiple 一次上传多张图片,注意name="photo[]"的形式,name属性设置成数组的形式。
 3 echo <<<_END
 4 <form method="post" action="" enctype="multipart/form-data">
 5     上传文件:<input type="file" name="photo[]" size="2" multiple>
 6     <input type="submit" value="提交">
 7 </form>
 8 _END;
 9 if($_FILES) {
10     //遍历所有照片的类型,判断上传的类型是否是常用的照片类型
11     foreach($_FILES['photo']['type'] as $key=>$value) {
12         switch ($value) {
13             case 'image/jpeg': $ext = 'jpg';
14                 break;
15             case 'image/png': $ext = 'png';
16                 break;
17             case 'image/gif': $ext = 'gif';
18             default:
19                 $ext = '';
20                 break;
21         }
22         if($ext) {
23             //设置照片的存放相对路径和命名。命名照片例:20161226_2.png,下划线后跟遍历的键值区分照片,可在此处自行设置规则!!
24             $name = '../user_upload/images/'.date('Ymd',time()).'_'."$key.$ext";
25             //将上传的文件移动到新位置
26             move_uploaded_file($_FILES['photo']['tmp_name'][$key], $name);
27             //显示出上传的图片
28 echo <<<_END
29     <img src ="$name">
30 _END;
31         }
32     }
33 }

  身边有好多刚入门的朋友没见过echo 多行代码的形式,我摘一段上面这段代码的一小部分说明几个注意事项。

echo <<<_END
    <img src ="$name">
_END;
  • <<<_END后不要有空格。
  • _END和分号之间不要有空格,且分号后不要有空格。
  • _END要顶这行头开始写。
  • echo 输出<<<_END和_END之间的代码。
  • 在多行代码中可以有变量,并且能被正常解析出值。
  • 在多行代码中使用数组的时候例如$arr[key],不能给key加冒号例如$arr[“key”],否则会报错。具体原因不详。希望有知道的朋友告我。

  好了以上就是这第一篇在cnb上写的b。欢迎大家留言跟我CNB,注意我的口型tree----new----bee。

 

  参考文献《PHP、MySQL与JavaScript学习手册》,Robin Nixon 著,侯荣涛、侯硕楠、韩进 译。中国电力出版社。

posted @ 2016-12-26 10:53  edgexie  阅读(10473)  评论(0编辑  收藏  举报