jq与php实现页面文件上传
在页面上传一个csv文件,web服务器端用php解析上传的csv文件并入库
<form enctype="multipart/form-data">
<p>上传csv文件<input type="file" id="csv_file" name="csv_file"/></p>
<button id="import">导入</button>
</form>
<script type="application/javascript">
$("#import").click(function () {
var files = $('#csv_file').prop('files');
var data = new FormData();
data.append('csv_file', files[0]);
$.ajax({
type: 'POST',
url: "http://xxxx/import_csv",
data: data,
cache: false,
processData: false,
contentType: false,
success: function (ret) {
alert(ret);
}
});
});
</script>
后端php代码
<?php
//上传文件的名称
//上传文件类型
//上传文件的大小
//上传文件的临时文件名称
//上传文件出错
//函数:将临时文件移动到指定目录下
//move_uploaded_file("临时文件",uploads/文件名);
//上传的文件名不能冲突,同名改名
/*------
gbk一个汉字2个字节
utf8-个汉字3个字节
1kb = 1024b
1mb = 1024kb
------*/
//1、获取上传文件的信息
$mypic = $_FILES["myFile"];
//var_dump($_FILES);
//2、判断是否存在上传的文件
if(!empty($mypic)){
$picname = $_FILES["myFile"]["name"];
$picsize = $_FILES["myFile"]["size"];
//3、判断文件大小 512k--->512*1000
if($picsize>2*1024*1024){
echo "图片大小不能超过2MB 请重新选择";
exit;//终止当前php的运行
}
//4、判断类型
$type = strstr($picname, ".");
if($type !=".gif" && $type !=".jpg" &&$type!=".png"){
echo "图片格式不正确";
exit;
}
//5、创建新的文件名,解决名称冲突
//时间戳/随机数/文件后缀
$pics = time().rand(1,9999).$type;//1970-1-1
//6、将临时文件移动到指定目录
move_uploaded_file($_FILES["myFile"]["tmp_name"],"uploads/".$pics);
}
?>
php通过$_FILES读取上传的文件,通过tmp_name可以获取上传文件路径,通过fgetcsv函数读取csv文件数据。