vue上传excel,php读取存库

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

 0) {
      echo "Error: " . $_FILES["file"]["error"] . "
"; } 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"; }

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


vue上传excel,php读取存库_第1张图片
image.png

前端代码:



{{ result }}
正在上传中
    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读取存库)