朋友我已经知道如何通过php上传.csv文件格式。 但现在我需要知道如何在PHP中上传.xls文件。 我试过这个代码,但它无法正常工作..任何人都可以给我一个建议??
if ($_POST['frmSubmit']) {
$file = $_FILES['frmUpload']['name'];
if ($file) {
$data = new Spreadsheet_Excel_Reader();
$data->read('name'.$file);
for ($k = 1; $k < count($strDatas->sheets[0]['numRows']); $k++) {
$name = $data->sheets[0]['cells'][$k][1];
$code = $data->sheets[0]['cells'][$k][2];
$email = $data->sheets[0]['cells'][$k][3];
$designation = $data->sheets[0]['cells'][$k][4];
$number = $data->sheets[0]['cells'][$k][5];
$salary = $data->sheets[0]['cells'][$k][6];
$age = $data->sheets[0]['cells'][$k][7];
doInsertEmployeeDetails($name, $code, $email, $designation, $number, $salary, $age);
}
} else {
$strMessage = 'Please upload a valid file.';
$strClass = 'Error';
}
}
答案 0 :(得分:0)
文件上传是文件上传。无论是.txt,.jpg,.exe还是.foobarbaz都没关系。 PHP并不关心。
你做错了是为这个文件制作一个完全虚假的名字,并且不知何故希望PHP能够神奇地修复它。
您需要先确认实际发生了上传并且成功
if ($_FILES['frmUpload']['error'] !== UPLOAD_ERR_OK) {
die("File upload failed with error code #" . $_FILES['frmUpload']['error']);
}
然后只使用PHP分配的标准临时文件名,而不是客户端上存在的完全含义的文件名:
$data->read($_FILES['frmUpload']['tmp_name']);
当然,你应该检查一下这个上传是否真的是一个excel文件,而不是完全不同的东西。