前端用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];
},








网友评论