CI多文件上传

CI官网手册上面写道,文件上传:

function getUploadName($field="prize_file"){    $config[‘upload_path‘]   = ‘uploads/prizepath/‘;    $config[‘allowed_types‘] = ‘gif|jpg|png|swf|bmp|txt‘;    $config[‘file_name‘]     = date(‘Ymdhis‘).rand(100, 999);    $config[‘max_size‘]      = ‘1024‘;    $config[‘max_width‘]     = ‘0‘;    $config[‘max_height‘]    = ‘0‘;

$this->load->library(‘upload‘, $config);

if(!dir_create($config[‘upload_path‘]))    {        exit(‘上传目录出错‘);    }

if( ! $this->upload->do_upload($field))    {        $data = array(‘error‘ => $this->upload->display_errors());    }    else    {        $data = array(‘upload_data‘ => $this->upload->data());    }

return $data;}

这是单文件上传,文件的格式是:
array (size=5)
  ‘name‘ => 

string

 ‘640-300-50k.jpg‘ (length=15)
  ‘type‘ => 

string

 ‘image/jpeg‘ (length=10)
  ‘tmp_name‘ => 

string

 ‘E:\wamp\tmp\php9A91.tmp‘ (length=23)
  ‘error‘ => 

int

 0
  ‘size‘ => 

int

 50953如果要多文件上传呢:文件的格式是:
array (size=5)
  ‘name‘ =>
    array (size=4)
      0 => 
string
 ‘640-300-50k.jpg‘ (length=15)
      1 => 
string
 ‘20160727051524365.jpg‘ (length=21)
      2 => 
string
 ‘‘ (length=0)
      3 => 
string
 ‘‘ (length=0)
  ‘type‘ =>
    array (size=4)
      0 => 
string
 ‘image/jpeg‘ (length=10)
      1 => 
string
 ‘image/jpeg‘ (length=10)
      2 => 
string
 ‘‘ (length=0)
      3 => 
string
 ‘‘ (length=0)
  ‘tmp_name‘ =>
    array (size=4)
      0 => 
string
 ‘E:\wamp\tmp\php79C9.tmp‘ (length=23)
      1 => 
string
 ‘E:\wamp\tmp\php79CA.tmp‘ (length=23)
      2 => 
string
 ‘‘ (length=0)
      3 => 
string
 ‘‘ (length=0)
  ‘error‘ =>
    array (size=4)
      0 => 
int
 0
      1 => 
int
 0
      2 => 
int
 4
      3 => 
int
 4
  ‘size‘ =>
    array (size=4)
      0 => 
int
 50953
      1 => 
int
 42920
      2 => 
int
 0
      3 => 
int
 0

这个时候最关键的思路就是:把多文件上传,组装成单文件上传的格式,并且,每个文件的名字要不同,附上代码:
foreach($_FILES[‘prize_file‘][‘error‘] as $k=>$v){    if($v!=4){        $field="prize_file".$k;   ----------(这一步很关键)        $_FILES[$field]=array("name"=>$_FILES["prize_file"][‘name‘][$k],"type"=>$_FILES[‘prize_file‘][‘type‘][$k],"tmp_name"=>$_FILES[‘prize_file‘][‘tmp_name‘][$k],"error"=>$_FILES[‘prize_file‘][‘error‘][$k],"size"=>$_FILES[‘prize_file‘][‘size‘][$k]);        $data = $this->getUploadName($field); -------(这个时候,每个文件上传的名字就不同了)        $upload_data[]=$data;

}}

 
时间: 2024-08-24 19:15:31

CI多文件上传的相关文章

CI支持各种文件上传-文件类型(Linux + window)

$mimes = array( 'hqx' => 'application/mac-binhex40', 'cpt' => 'application/mac-compactpro', 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv'

ci框架读取上传的excel文件数据

原文链接: https://blog.csdn.net/qq_38148394/article/details/87921373 此功能实现使用到PHPExcel类库,PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel.也是我们日常开发中,经常会遇到的使用场景. (一) PHPExcel下载 类库下载地址:https://github.com/PHPOffice/PHPExcel (二) PHPExcel引入到CI框架 1) 解压压

CodeIgniter学习笔记(十四)——CI中的文件上传

首先通过控制器的方法跳转至视图 public function file() { $this->load->helper('url'); $this->load->view('file'); } 在视图中创建一个表单用于选择并上传文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Docum

兼容ie的jquery ajax文件上传

Ajax文件上传插件很多,但兼容性各不一样,许多是对ie不兼容的,另外项目中是要求将网页内容嵌入到桌面端应用的,这样就不允许带flash的上传插件了,如:jquery uploadify...悲剧 对于Ajax文件上传,大体是有: 1.创建一个input type="file" 的文件上传按钮,根据其id监听绑定其change事件,在事件中用jquery创建一个iframe,嵌入添加隐藏form,同时创建input type="file",id相同的文件上传按钮,并

通过ifreme实现文件上传

模板页面添加ifreme <div style=' display: none;' > <iframe name ="uploadResponse_attachment" id= "uploadResponse_attachment"></iframe > <form id ="uploadForm_attachment" action= "<?php echo site_url('log

Servlet编程专题11之Servlet3.0特性实现文件上传

- 使用Servlet3.0实现文件上传,不需要借助第三方的jar包. 1.在index.jsp文件中编写文件上传的表单: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html

linux下将文件上传到svn服务器

linux下将文件上传到svn服务器 摘自:https://blog.csdn.net/sky_yangge/article/details/41544773 2014年11月27日 16:47:57 sky样 阅读数 7526 1.首先将svn的所指定的目录checkout到本地目录下: 使用svn co +服务器的地址(path),输入服务器的密码即可,此时会自动在本地目录下同步服务器你所指定的目录及里面所有的文件(其中co 即是 checkout的简写) 例如:svn co hettp:/

简单利用filetype进行文件上传

对于文件上传大家都很熟悉了,毕竟文件上传是获取webshell的一个重要方式之一,理论性的东西参考我的另一篇汇总文章<浅谈文件解析及上传漏洞>,这里主要是实战补充一下理论内容--filetype漏洞! filetype漏洞主要是针对content-type字段,主要有两种利用方式:    1.先上传一个图片,然后将content-type:image/jpeg改为content-type:text/asp,然后对filename进行00截断,将图片内容替换为一句话木马. 2.直接使用burp抓

jquery-ajax实现文件上传异常处理web.multipart.MultipartException

异常如下: org.springframework.web.multipart.MultipartException: The current request is not a multipart request 原因分析: 可能原因1: form表单中没有添加 enctype="multipart/form-data" 属性 可能原因2: 请求方式必须为post,如果不是则必定出错 可能原因3: 请求的contentType不是"multipart/form-data&qu