新聞中心
如何用php實(shí)現(xiàn)上傳excel
第一,在前臺html頁面進(jìn)行上傳文件:如:
創(chuàng)新互聯(lián)是一家專業(yè)提供慈溪企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為慈溪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
復(fù)制代碼代碼如下:
form method="post" action="php文件"enctype="multipart/form-data"
h3導(dǎo)入Excel表:/h3input type="file" name="file_stu" /
input type="submit" value="導(dǎo)入"/
/form
第二,在對應(yīng)的php文件進(jìn)行文件的處理
復(fù)制代碼代碼如下:
if (! empty ( $_FILES ['file_stu'] ['name'] ))
{
$tmp_file = $_FILES ['file_stu'] ['tmp_name'];
$file_types = explode ( ".", $_FILES ['file_stu']['name'] );
$file_type = $file_types [count ( $file_types ) - 1];
/*判別是不是.xls文件,判別是不是excel文件*/
if (strtolower ( $file_type ) !="xls")
{
$this-error ( '不是Excel文件,重新上傳' );
}
/*設(shè)置上傳路徑*/
$savePath = SITE_PATH . '/public/upfile/Excel/';
/*以時(shí)間來命名上傳的文件*/
$str = date ( 'Ymdhis' );
$file_name = $str . "." . $file_type;
/*是否上傳成功*/
if (! copy ( $tmp_file, $savePath . $file_name ))
{
$this-error ( '上傳失敗' );
}
/*
*對上傳的Excel數(shù)據(jù)進(jìn)行處理生成編程數(shù)據(jù),這個(gè)函數(shù)會在下面第三步的ExcelToArray類中
注意:這里調(diào)用執(zhí)行了第三步類里面的read函數(shù),把Excel轉(zhuǎn)化為數(shù)組并返回給$res,再進(jìn)行數(shù)據(jù)庫寫入
*/
$res = Service ( 'ExcelToArray' )-read ( $savePath . $file_name );
/*
重要代碼解決Thinkphp M、D方法不能調(diào)用的問題
如果在thinkphp中遇到M 、D方法失效時(shí)就加入下面一句代碼
*/
//spl_autoload_register ( array ('Think', 'autoload' ) );
/*對生成的數(shù)組進(jìn)行數(shù)據(jù)庫的寫入*/
foreach ( $res as $k = $v )
{
if ($k != 0)
{
$data ['uid'] = $v[0];
$data ['password']= sha1 ( '111111' );
$data ['email'] =$v [1];
$data ['uname'] = $v [3];
$data ['institute'] = $v [4];
$result = M ( 'user' )-add( $data );
if (! $result)
{
$this-error ( '導(dǎo)入數(shù)據(jù)庫失敗' );
}
}
}
}
第三:ExcelToArrary類,用來引用phpExcel并處理Excel數(shù)據(jù)的
復(fù)制代碼代碼如下:
class ExcelToArrary extends Service{
public function __construct() {
/*導(dǎo)入phpExcel核心類 注意:你的路徑跟我不一樣就不能直接復(fù)制*/
include_once('./Excel/PHPExcel.php');
}
/**
* 讀取excel $filename 路徑文件名$encode 返回?cái)?shù)據(jù)的編碼默認(rèn)為utf8
*以下基本都不要修改
*/
public function read($filename,$encode='utf-8'){
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader-setReadDataOnly(true);
$objPHPExcel = $objReader-load($filename);
$objWorksheet = $objPHPExcel-getActiveSheet();
$highestRow =$objWorksheet-getHighestRow();
$highestColumn = $objWorksheet-getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for($row = 1; $row = $highestRow; $row++) {
for ($col = 0; $col $highestColumnIndex;$col++) {
$excelData[$row][] =(string)$objWorksheet-getCellByColumnAndRow($col,$row)-getValue();
}
}
return $excelData;
}
}
怎么實(shí)現(xiàn)php兩個(gè)頁面之間傳遞數(shù)據(jù)
使用表單來傳遞,_post它在php只能獲取由表單的 method="post" 時(shí)它才能接受到數(shù)據(jù),
如下代碼:
form?id="form1"?name="form1"?method="get"?action=""
label
input?type="text"?name="cn"?value='獲取到我了'?/
/label
/forma.php頁面
?
if(?$_post?)
{
echo?$_post['cn'];
}
else
{
echo?'沒有獲取到值';
}
?
php文件與php文件之間如何傳遞數(shù)據(jù)?
通過session來儲存
?php
session_start();
$_SESSION['username'] = "userName";
?
在其它頁面直接取出就行了
?
session_start();
echo?$_SESSION['username'];
?
通過url傳向其它頁面?zhèn)鬟f參數(shù)
other.php?user=xxx
?或在php重定向到其它頁面時(shí)
$username = "xxx";
$home_url = 'logIn.php?user='.$username;
header('Location:'.$home_url);
其它頁面用$_GET["user"]來接收
3.通過表單向其它頁面?zhèn)魉蛥?shù)
其它頁面用$_POST["user"]來接收
PHP與PHP數(shù)據(jù)傳輸
這需要用ajax來實(shí)現(xiàn)
index.php
html
titlephp+jquery+ajax+json簡單小例子/title
?php
header("Content-Type:text/html;charset=utf-8");
?
head
script?type="text/javascript"?src="
script?type="text/javascript"
$(function()?{
$("#subbtn").click(function()?{
var?params?=?$("input").serialize();
var?url?=?"1.php";
$.ajax({
type:?"post",
url:?url,
dataType:?"json",
data:?params,
success:?function(msg){
var?backdata?=?"您提交的姓名為:"?+?msg.name?+
"br?/?您提交的密碼為:"?+?msg.password;
$("#backdata").html(backdata);
$("#backdata").css({color:?"green"});
}
});
});
});
/script
/head
body
plabel?for="name"姓名:/label
input?id="name"?name="name"?type="text"?/
/p
plabel?for="password"密碼:/label
input?id="password"?name="password"?type="password"?/
/p
span?id="backdata"/span
pinput?id="subbtn"?type="button"?value="提交數(shù)據(jù)"?//p
/body
/html
1.php代碼:
?php
//接收數(shù)據(jù)-處理數(shù)據(jù)-返回?cái)?shù)據(jù)
echo?json_encode($_POST);
?
本文標(biāo)題:php怎么實(shí)現(xiàn)傳數(shù)據(jù) php傳參
網(wǎng)頁URL:http://www.dlmjj.cn/article/doseged.html