1上传多张图片, 要对 $_FILES进行 重新处理.

  1. //添加
  2. public function addCourseAlbumAction()
  3. {
  4. $CourseAlbumModel = new CourseAlbumModel();
  5. $CourseAlbumModel->title = $_REQUEST["title"];
  6. $CourseAlbumModel->courseId = $_REQUEST["courseId"];
  7. if(!empty($_FILES))
  8. {
  9.  
  10. $tempArr = $_FILES["url"];
  11. $imageArr = array();
  12.  
  13. foreach ($tempArr as $k => $v)
  14. {
  15. foreach ($v as $k2 => $v2)
  16. {
  17. $imageArr[$k2][$k] = $v2;
  18. }
  19. }
  20.  
  21. foreach ($imageArr as $k => $v)
  22. {
  23. $upload = new BaseUploadUtil();
  24. $upload->createPath();
  25. $upload->createDatePath();
  26. $upload->file = $v;
  27. $info = $upload->upload();
  28. if(count($info)>0){
  29. $CourseAlbumModel->url = $info["path"];
  30. }
  31. $CourseAlbumModel->orderBy = $_REQUEST["orderBy"];
  32. $CourseAlbumModel->lastUpdateTime = time();
  33. $CourseAlbumModel->insert();
  34. }
  35.  
  36. echo 1;
  37.  
  38. }
  39. else
  40. {
  41. $CourseAlbumModel->orderBy = $_REQUEST["orderBy"];
  42. $CourseAlbumModel->lastUpdateTime = time();
  43. echo $CourseAlbumModel->insert();
  44. }
  45.  
  46. }

关键代码:

  1. $tempArr = $_FILES["url"];
  2. $imageArr = array();
  3.  
  4. foreach ($tempArr as $k => $v)
  5. {
  6. foreach ($v as $k2 => $v2)
  7. {
  8. $imageArr[$k2][$k] = $v2;
  9. }
  10. }
  11.  
  12. foreach ($imageArr as $k => $v)
  13. {
  14. $upload = new BaseUploadUtil();
  15. $upload->createPath();
  16. $upload->createDatePath();
  17. $upload->file = $v;
  18. $info = $upload->upload();
  19.  
  20. }

处理后的 数组是  $imageArr.   之后 每次上传 就是  $upload->file = $v;

2fileinput 上传多张图片.

  1. // echo BaseView::getImageHtml(array("name"=> "original","label"=> $_courseAlbum->getFieldDesc("original")));
  2. // echo BaseView::getHrHtml();
  3.  
  4. echo '<fieldset>
  5. <div class="form-group">
  6. <label class="col-sm-2 control-label">' . $_courseAlbum->getFieldDesc("original") . ':</label>
  7. <div class="col-sm-9">
  8. <input id="original_0" name="original[]" type="file" class="file" multiple="true" />
  9. </div>
  10. <script type="text/javascript">
  11. $("#original_0").fileinput({
  12. language: "zh",
  13. showUpload:false,
  14. browseLabel:"<span style=\'color:#fff;\'>选择'. $_courseAlbum->getFieldDesc("original").'</span>",
  15. showClose:false,
  16. maxFileCount: 10
  17. });
  18. </script>
  19. </div>
  20. </fieldset>';
  21.  
  22. echo BaseView::getHrHtml();

1. name="original[]"   这是一个数组.

2.multiple="true"  允许多选.

3. maxFileCount: 10 最大允许10个文件.

php端代码:

  1. //添加 ---> 上传多张:
  2. public function addCourseAlbumAction()
  3. {
  4. $CourseAlbumModel = new CourseAlbumModel();
  5. $CourseAlbumModel->title = $_REQUEST["title"];
  6. $CourseAlbumModel->courseId = $_REQUEST["courseId"];
  7.  
  8. // if(!empty($_FILES)){
  9. // $upload = new BaseUploadUtil();
  10. // $upload->createPath();
  11. // $upload->createDatePath();
  12. // $upload->file = $_FILES["original"];
  13. // $info = $upload->upload();
  14. // if(count($info)>0){
  15. // $CourseAlbumModel->original = $info["path"];
  16. // }
  17. // }
  18. // $CourseAlbumModel->orderBy = $_REQUEST["orderBy"];
  19. // $CourseAlbumModel->lastUpdateTime = time();
  20. // echo $CourseAlbumModel->insert();
  21.  
  22. if(!empty($_FILES))
  23. {
  24.  
  25. $tempArr = $_FILES["original"];
  26. $imageArr = array();
  27.  
  28. foreach ($tempArr as $k => $v)
  29. {
  30. foreach ($v as $k2 => $v2)
  31. {
  32. $imageArr[$k2][$k] = $v2;
  33. }
  34. }
  35.  
  36. foreach ($imageArr as $k => $v)
  37. {
  38. $upload = new BaseUploadUtil();
  39. $upload->createPath();
  40. $upload->createDatePath();
  41. $upload->file = $v;
  42. $info = $upload->upload();
  43. if(count($info)>0){
  44. $CourseAlbumModel->original = $info["path"];
  45. }
  46. $CourseAlbumModel->orderBy = $_REQUEST["orderBy"];
  47. $CourseAlbumModel->lastUpdateTime = time();
  48. $CourseAlbumModel->insert();
  49. }
  50.  
  51. echo 1;
  52.  
  53. }
  54. else
  55. {
  56. $CourseAlbumModel->orderBy = $_REQUEST["orderBy"];
  57. $CourseAlbumModel->lastUpdateTime = time();
  58. echo $CourseAlbumModel->insert();
  59. }
  60. }

3修改,删除的时候删除原来的资源,图片 update, delete

  1. //修改
  2. public function updateCourseAction()
  3. {
  4. $CourseModel = new CourseModel($_REQUEST["id"]);
  5. $CourseModel->title = $_REQUEST["title"];
  6. $CourseModel->userId = $_REQUEST["userId"];
  7. if(!empty($_FILES['defaultImg'])){
  8. $upload = new BaseUploadUtil();
  9. $upload->createPath();
  10. $upload->createDatePath();
  11. $upload->file = $_FILES["defaultImg"];
  12. $info = $upload->upload();
  13.  
  14. //删除:
  15. $this->deleteService($CourseModel->defaultImg);
  16.  
  17. if(count($info)>0){
  18. $CourseModel->defaultImg = $info["path"];
  19. }
  20. }
  21. if(!empty($_FILES['icon'])){
  22. $upload = new BaseUploadUtil();
  23. $upload->createPath();
  24. $upload->createDatePath();
  25. $upload->file = $_FILES["icon"];
  26. $info = $upload->upload();
  27.  
  28. //删除:
  29. $this->deleteService($CourseModel->icon);
  30.  
  31. if(count($info)>0){
  32. $CourseModel->icon = $info["path"];
  33. }
  34. }
  35. $CourseModel->remark = isset($_REQUEST["remark"]) ? $_REQUEST["remark"] : "";
  36. $CourseModel->orderBy = $_REQUEST["orderBy"];
  37. $CourseModel->numb = $_REQUEST["numb"];
  38. $CourseModel->theKey = $_REQUEST["theKey"];
  39. $CourseModel->isOpen = $_REQUEST["isOpen"];
  40. $CourseModel->lastUpdateTime = time();
  41. echo $CourseModel->update();
  42. }
  43.  
  44. //删除
  45. public function deleteCourseAction()
  46. {
  47. $ids = $_REQUEST["ids"];
  48. for($i=0;$i<count($ids);$i++)
  49. {
  50. $CourseModel = new CourseModel($ids[$i]);
  51. if(!$CourseModel->delete())
  52. {
  53. echo false;
  54. return;
  55. }
  56.  
  57. //删除:
  58. $this->deleteService($CourseModel->defaultImg);
  59. $this->deleteService($CourseModel->icon);
  60. }
  61. echo true;
  62. }
  63.  
  64. //物理删除:
  65. public function deleteService($address)
  66. {
  67. $file = UPLOAD_PATH . $address;
  68. if (is_file($file)) {
  69. # code...
  70. unlink($file);
  71. }
  72. }

4生成器中两个字段上传图片的时候,要修改.

下面是生成器生成的:

  1. //添加
  2. public function addCourseAction(){
  3. $CourseModel = new CourseModel();
  4. $CourseModel->title = $_REQUEST["title"];
  5. $CourseModel->userId = $_REQUEST["userId"];
  6. 6 if(!empty($_FILES)){
  7. $upload = new BaseUploadUtil();
  8. $upload->createPath();
  9. $upload->createDatePath();
  10. $upload->file = $_FILES["defaultImg"];
  11. $info = $upload->upload();
  12. if(count($info)>0){
  13. $CourseModel->defaultImg = $info["path"];
  14. }
  15. }
  16. 16 if(!empty($_FILES)){
  17. $upload = new BaseUploadUtil();
  18. $upload->createPath();
  19. $upload->createDatePath();
  20. $upload->file = $_FILES["icon"];
  21. $info = $upload->upload();
  22. if(count($info)>0){
  23. $CourseModel->icon = $info["path"];
  24. }
  25. }
  26. $CourseModel->remark = $_REQUEST["remark"];
  27. $CourseModel->orderBy = $_REQUEST["orderBy"];
  28. $CourseModel->numb = $_REQUEST["numb"];
  29. $CourseModel->theKey = $_REQUEST["theKey"];
  30. $CourseModel->isOpen = $_REQUEST["isOpen"];
  31. $CourseModel->lastUpdateTime = time();
  32. echo $CourseModel->insert();
  33. }
  34. //修改
  35. public function updateCourseAction(){
  36. $CourseModel = new CourseModel($_REQUEST["id"]);
  37. $CourseModel->title = $_REQUEST["title"];
  38. $CourseModel->userId = $_REQUEST["userId"];
  39. 39 if(!empty($_FILES)){
  40. $upload = new BaseUploadUtil();
  41. $upload->createPath();
  42. $upload->createDatePath();
  43. $upload->file = $_FILES["defaultImg"];
  44. $info = $upload->upload();
  45. if(count($info)>0){
  46. $CourseModel->defaultImg = $info["path"];
  47. }
  48. }
  49. 49 if(!empty($_FILES)){
  50. $upload = new BaseUploadUtil();
  51. $upload->createPath();
  52. $upload->createDatePath();
  53. $upload->file = $_FILES["icon"];
  54. $info = $upload->upload();
  55. if(count($info)>0){
  56. $CourseModel->icon = $info["path"];
  57. }
  58. }
  59. $CourseModel->remark = isset($_REQUEST["remark"]) ? $_REQUEST["remark"] : "";
  60. $CourseModel->orderBy = $_REQUEST["orderBy"];
  61. $CourseModel->numb = $_REQUEST["numb"];
  62. $CourseModel->theKey = $_REQUEST["theKey"];
  63. $CourseModel->isOpen = $_REQUEST["isOpen"];
  64. $CourseModel->lastUpdateTime = time();
  65. echo $CourseModel->update();
  66. }

上面 第 6 ,16 ,39 ,49 直接判断 $_FILES 不正确,  这里 的 有两个字段 上传 图片 .  defaultImage 和 icon

应该 改为  $_FILES["defaultImage"]   和  $_FILES["icon"] .

如下:

  1. //添加
  2. public function addCourseAction()
  3. {
  4. $CourseModel = new CourseModel();
  5. $CourseModel->title = $_REQUEST["title"];
  6. $CourseModel->userId = $_REQUEST["userId"];
  7. 7 if(!empty($_FILES["defaultImg"])){
  8. $upload = new BaseUploadUtil();
  9. $upload->createPath();
  10. $upload->createDatePath();
  11. $upload->file = $_FILES["defaultImg"];
  12. $info = $upload->upload();
  13. if(count($info)>0){
  14. $CourseModel->defaultImg = $info["path"];
  15. }
  16. }
  17. 17 if(!empty($_FILES["icon"])){
  18. $upload = new BaseUploadUtil();
  19. $upload->createPath();
  20. $upload->createDatePath();
  21. $upload->file = $_FILES["icon"];
  22. $info = $upload->upload();
  23. if(count($info)>0){
  24. $CourseModel->icon = $info["path"];
  25. }
  26. }
  27. $CourseModel->remark = $_REQUEST["remark"];
  28. $CourseModel->orderBy = $_REQUEST["orderBy"];
  29. $CourseModel->numb = $_REQUEST["numb"];
  30. $CourseModel->theKey = $_REQUEST["theKey"];
  31. $CourseModel->isOpen = $_REQUEST["isOpen"];
  32. $CourseModel->lastUpdateTime = time();
  33. echo $CourseModel->insert();
  34. }
  35.  
  36. //修改
  37. public function updateCourseAction()
  38. {
  39. $CourseModel = new CourseModel($_REQUEST["id"]);
  40. $CourseModel->title = $_REQUEST["title"];
  41. $CourseModel->userId = $_REQUEST["userId"];
  42. 42 if(!empty($_FILES['defaultImg'])){
  43. $upload = new BaseUploadUtil();
  44. $upload->createPath();
  45. $upload->createDatePath();
  46. $upload->file = $_FILES["defaultImg"];
  47. $info = $upload->upload();
  48.  
  49. 49 //删除:
  50. 50 $this->deleteService($CourseModel->defaultImg);
  51.  
  52. if(count($info)>0){
  53. $CourseModel->defaultImg = $info["path"];
  54. }
  55. }
  56. 56 if(!empty($_FILES['icon'])){
  57. $upload = new BaseUploadUtil();
  58. $upload->createPath();
  59. $upload->createDatePath();
  60. $upload->file = $_FILES["icon"];
  61. $info = $upload->upload();
  62.  
  63. 63 //删除:
  64. 64 $this->deleteService($CourseModel->icon);
  65.  
  66. if(count($info)>0){
  67. $CourseModel->icon = $info["path"];
  68. }
  69. }
  70. $CourseModel->remark = isset($_REQUEST["remark"]) ? $_REQUEST["remark"] : "";
  71. $CourseModel->orderBy = $_REQUEST["orderBy"];
  72. $CourseModel->numb = $_REQUEST["numb"];
  73. $CourseModel->theKey = $_REQUEST["theKey"];
  74. $CourseModel->isOpen = $_REQUEST["isOpen"];
  75. $CourseModel->lastUpdateTime = time();
  76. echo $CourseModel->update();
  77. }
  78.  
  79. //删除
  80. public function deleteCourseAction()
  81. {
  82. $ids = $_REQUEST["ids"];
  83. for($i=0;$i<count($ids);$i++)
  84. {
  85. $CourseModel = new CourseModel($ids[$i]);
  86. if(!$CourseModel->delete())
  87. {
  88. echo false;
  89. return;
  90. }
  91.  
  92. 92 //删除:
  93. 93 $this->deleteService($CourseModel->defaultImg);
  94. 94 $this->deleteService($CourseModel->icon);
  95. }
  96. echo true;
  97. }
  98.  
  99. //物理删除:
  100. public function deleteService($address)
  101. {
  102. $file = UPLOAD_PATH . $address;
  103. if (is_file($file)) {
  104. # code...
  105. unlink($file);
  106. }
  107. }

红色部分是修改的生成器代码:

绿色部分是添加的 物理删除 资源的方法.

1) 上传多张图片时 ,对 $_FILES 的处理. upload ; 2)fileinput 上传多张图片. 3) 修改,删除的时候删除原来的资源,图片 update, delete , 删除 4)生成器中两个字段上传图片的时候,要修改生成器生成的代码的更多相关文章

  1. sql一个表中两个字段合并求和

    sql一个表中两个字段,合并求和 SELECT SUM(字段a+'.'+字段b) as total  from TABLE

  2. 一条SQL语句查询两表中两个字段

    首先描述问题,student表中有字段startID,endID.garde表中的ID需要对应student表中的startID或者student表中的endID才能查出grade表中的name字段, ...

  3. oracle中的timestamp字段的值乱码问题修改

    我的解决方案: 直接新增一个系统变量: key值为:NLS_TIMESTAMP_FORMATvalue的值为:YYYY-MM-DD HH24:MI:SSFF6 其它解决方案: 在登录PLSQL之后,查 ...

  4. Vue 两个字段联合校验典型例子--修改密码

    1.前言   本文是前文<Vue Element-ui表单校验规则,你掌握了哪些?>针对多字段联合校验的典型应用.   在修改密码时,一般需要确认两次密码一致,涉及2个属性字段.类似的涉及 ...

  5. sql一张表中两个字段指向同一个外键

    在项目开发中遇到这么一个例子,首先产品表 tb_product ----------------------------- id    name 1     手机 2    电脑 3     笔记本 ...

  6. MySQL 一张表中两个字段值互换

    update table a, table b set a.filed1= b.field2, a.field2= b.field1where a.id = b.id

  7. SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete) 一条语句实现两表同步(添加、删除、修改)

    MERGE 目标表 USING 源表 ON 匹配条件 WHEN MATCHED THEN 语句 WHEN NOT MATCHED THEN 语句; http://www.chinaz.com/prog ...

  8. ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

    前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...

  9. RENIX报文两个字段嵌套变化——网络测试仪实操

    RENIX软件如何实现报文中两个字段嵌套变化,以下为您实操讲解详细步骤. 1.打开Renix软件,连接机框并预约测试端口: 2.创建一条RAW流量(Binding流量也可以,这里用RAW流做例子) 3 ...

随机推荐

  1. Maximum Questions CodeForces - 900E (字符串,dp)

    大意:给定长$n$的字符串$s$, 只含'a','b','?', '?'可以替换为任意字符, 在给定长$t$的字符串, "ababab...", 求替换尽量少的'?', 使得$s$ ...

  2. JIT编译器技术理解

    参考链接: https://blog.csdn.net/liaodehong/article/details/51605457 https://www.cnblogs.com/insistence/p ...

  3. python-day73--django-分页

    ''' 批量导入数据:bulk_create Booklist=[] for i in range(100): Booklist.append(Book(title="book"+ ...

  4. SpringMVC的底层实现

    SpringMVC的底层实现流程: SpringMVC的核心是DispatchServlet,它负责接收HTTP的请求和协调SpringMVC中各个组件来完成请求处理的任务,一个请求被截获后,Disp ...

  5. mongodb副本集修改配置问题

    因虚拟机地址被占用,需要重新设置ip地址,这时需要修改副本集中的IP地址配置: 1: 查看配置rs.config():需要找到primary主机,在该主节点服务器上才有权限修改配置 2:rs.remo ...

  6. Python面向对象之继承

    前言: 继承是面向对象的3大特性之一,对于继承一点要注意一下4点. 一.基本查找 如果子类继承了父类,子类的实例化对象,没有的方法和属性会去父类找 class Parent(object): #父类 ...

  7. Wireshark:No interfaces found解决方法(Windows 10)

    启动Wireshark时有时会报“No interfaces found”,找不到网卡进行截包.造成这种情况的原因可能有两个,一是npf服务没启动,二是当前用启对网卡没有拦截权限. 一.npf服务未启 ...

  8. Oracle常用表和常见操作命令

    一.说明 Oracle数据库数据库名.表名.字段名等不区分大小写,字段值区分大小写. Oracle单词之间一般用下划线连接:表名最后一般加s字段名最后一般没s. 二.常见数据表 dba_*DBA拥有的 ...

  9. ubuntu中更新.netcore到2.1版本

    如果需要安装新版本到dotnetcore,需要先卸载旧版本(https://github.com/dotnet/core/blob/master/release-notes/download-arch ...

  10. laravel的firstOrCreate的作用:先查找表,如果有就输出数据,如果没有就插入数据

    public function zan(Post $post){ $param=[ 'user_id'=>\Auth::id(), 'post_id'=>$post->id ] Za ...