美文网首页
vue上传excel,php读取存库

vue上传excel,php读取存库

作者: 奔跑的兔子_ | 来源:发表于2018-05-04 14:38 被阅读0次

前端用formData进行上传,代码demo网上有很多,中心思想大多一样的,有需要的请定位在文章底部,先上php代码
这里引用了PHPExcel,将excel文件存在exldemo文件夹(可以改代码改存储位置)下面,php读取出数组,小伙伴们可以按需存库
这里的思想是php先接收到excel文件,存在服务器上,然后再去读取;还有一种方式就是不存直接读取,但是第二种容易造成数据丢失,不能保证数据完整性

<?php
require_once '/Applications/MAMP/htdocs/PHPExcel-1.8/Classes/PHPExcel.php';
require_once '/Applications/MAMP/htdocs/PHPExcel-1.8/Classes/PHPExcel/IOFactory.php';
require_once '/Applications/MAMP/htdocs/PHPExcel-1.8/Classes/PHPExcel/Reader/Excel5.php';
if ($_FILES["file"]["error"] > 0) {
      echo "Error: " . $_FILES["file"]["error"] . "<br />";
} else {
      $uploaded_file = $_FILES["file"]["tmp_name"];
      $move_to_file = "/Applications/MAMP/htdocs/exldemo/".$_FILES["file"]["name"];
      if(move_uploaded_file($uploaded_file,iconv("utf-8", "gb2312", $move_to_file))) {
          echo "上传成功\n";
          readExcel($move_to_file); //读取文件
      } else{
          echo "上传失败\n";
      }
}

//读取文件
function readExcel($file_path){
    $type = pathinfo($file_path);
    $type = strtolower($type["extension"]);
    if( $type =='xlsx' )
    {
        $objReader = new PHPExcel_Reader_Excel2007();
    }else{
        $type=$type==='csv' ? $type : 'Excel5';
        $objReader = PHPExcel_IOFactory::createReader($type);
    }
    $objPHPExcel = $objReader->load($file_path);
    $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);  //转换成数组
    echo json_encode($sheetData)."\n";
}

浏览器查看返回成功即可。


image.png

前端代码:

<input type="file" @change="getFile($event)"/>
<button @click="upload">上传</button>
<div>{{ result }}</div>
<div v-show="uping==1">正在上传中</div>
    upload: function() {
      var zipFormData = new FormData();
      zipFormData.append('file',this.upath); //filename是键,file是值,就是要传的文件,test.zip是要传的文件名
      let config = { headers: { "Content-Type": "multipart/form-data" } };
      this.uping = 1;
      axios
        .post("/upload.php", zipFormData, config)
        .then(function(response) {});
    },
    getFile: function(even) {
      this.upath = event.target.files[0];
    },

相关文章

网友评论

      本文标题:vue上传excel,php读取存库

      本文链接:https://www.haomeiwen.com/subject/vrpdrftx.html