php上传图片到服务器&&上传excel到服务器并写入MySQL
2017-02-22 14:03
766 查看
controller代码:
在上传excel时要用到用PHPExcel,PHPExcel是相当强大的 MS Office Excel 文档生成类库。
你上它的官网把程序包下载下来放在Apache24\htdocs 【新建一个文件夹(PHPExcel)】里面,然后就可以使用了。
在config配置文件下的mimes.php的文件下xlsx后面(113行)增加一条语句:
‘xlsx’ => array(’ application/octet-stream’,……)
<?php class Upload extends CI_Controller { parent::__construct(); public function __construct() { parent::__construct();//继承或者调用父类构造函数 $this->load->helper(array('form', 'url'));//加载辅助函数 } public function index() { $this->load->view('upload_form', array('error' => ' ')); } public function do_upload() { //上传到文件夹的路径 $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png|xlsx'; $config['max_size'] = 100; $config['max_width'] = 1024; $config['max_height'] = 768; //加载upload库 $this->load->library('upload', $config); //上传文件file的name='userfile' if (!$this->upload->do_upload('userfile')) { $error = array('error' => $this->upload->display_errors()); //没有选择文件,打印错误 $this->load->view('upload_form', $error); } else { //选择文件上传 $data = array('upload_data' => $this->upload->data()); // $this->load->view('upload_success', $data); // 上传后存储的路径 upload_data/full_path $excleFullPath = $data["upload_data"]["full_path"]; //获取上传文件的后缀名 $extname = strtolower(substr($excleFullPath, strrpos($excleFullPath, '.') + 1)); //判断是否是excel文件,如果是excel文件就写入数据库 if ($extname == 'xlsx') { //此处往下为新加的excel上传代码: //--------输出Excel内容换行 define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); $this->load->view('upload_success', $data); echo '$excleFullPath', $excleFullPath, '<br>'; require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php'; $objReader = PHPExcel_IOFactory::createReader('Excel2007'); //创建一个2007的读取对象 $objPHPExcel = $objReader->load($excleFullPath);//读取一个xlsx文件 // 循环sheet { //只取第一个sheet工作簿里面的值 $worksheet = $objPHPExcel->getSheet(0); echo 'Worksheet - ', $worksheet->getTitle(), EOL; //循环行 foreach ($worksheet->getRowIterator() as $row) { echo 'Row number - ', $row->getRowIndex(), EOL; $cellIterator = $row->getCellIterator(); // 拿到行中的cell迭代器 $cellIterator->setIterateOnlyExistingCells(false); // 设置cell迭代器,遍历所有cell,哪怕cell没有值 // 循环列 $arr = array(); foreach ($cellIterator as $cell) { if (!is_null($cell)) {//如果列不给空就得到它的坐标和计算的值 $data = $cell->getCalculatedValue(); $arr[] = $data; echo 'Cell - ', $cell->getCoordinate(), '-', $cell->getCalculatedValue(), EOL; } } $this->load->model('Insert'); $this->Insert->to_sql($arr); // print_r($arr); // echo '<br>'; } } } else { $this->load->view('upload_success', $data); return; } } } }
models代码:
<?php class Insert extends CI_Model { public function __construct(){ parent::__construct(); $this->load->database(); } public function to_sql($data){ $colomnArr =array("col1","col2","col3","col4","col5"); if(count($data)<count($colomnArr)){ return; } $db_array=array(); //遍历一行的每一列组成一个数组 foreach ($colomnArr as $index=>$item){ $db_array[$colomnArr[$index]] = $data[$index]; } $this->db->insert("sql",$db_array); echo $this->db->last_query(); return $this->db->affected_rows(); } }
views代码:
Upload Form:<html> <head> <title>Upload Form</title> </head> <body> <?php echo $error; ?> <form method="post" enctype="multipart/form-data" action="upload/do_upload" accept-charset="utf-8"> <input type="file" name="userfile" size="20"/> <br/><br/> <input type="submit" value="upload"/> </form> </body> </html>
Upload Success:
<html> <head> <title>Upload Success</title> </head> <body> <h3>Your file was successfully uploaded!</h3> <ul> <?php foreach ($upload_data as $item => $value): ?> <li><?php echo $item; ?>: <?php echo $value; ?></li> <?php endforeach; ?> </ul> <p><?php echo anchor('upload', 'Upload Another File!'); ?></p> </body> </html>
相关文章推荐
- php&mysql(图片上传)
- PHP&MySQL图片上传及管理
- android 图片上传java,php服务器
- (二)上传图片至服务器,写入到数据库Blob字段中,以及从数据库读取Blob信息(iframe父子页面传值)
- HTML5拍照上传图片&Phonegap封装HTML5调用Android相机拍照上传到PHP端
- php读取excel内容并写入mysql中
- PHP 从mysql库里取出大量数据写入excel压缩下载
- nginx(nginx+php)漏洞上传图片可入侵100万服务器
- IIS+php服务器无法上传图片解决办法
- Android -- 图片异步上传到PHP服务器
- php:从服务器上下载&保存一个远程图片
- php form 图片上传至服务器上
- (一)上传图片至服务器,写入到数据库Blob字段中,以及从数据库读取Blob信息(iframe父子页面传值)
- php上传Excel文件时如何判断文件中有图片
- php判断上传的Excel文件中是否有图片及PHPExcel库认识
- Android上传图片(PHP服务器)
- php上传图片到mysql并显示
- nginx漏洞上传图片可入侵100万服务器 nginx+php的注意了
- iphone上传图片到webserver 手机端和服务器(php)
- php实现将文件写入数据库、从数据库读取文件(防止图片上传漏洞)