friends i already know how to upload .csv file format through php. but now i need to know how to upload .xls file in php. i tried of this code but it doesn't work properly.. can any one able to give suggestion for me??
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';
}
}
A file upload is a file upload. Doesn't matter if it's .txt, .jpg, .exe, or .foobarbaz. PHP doesn't care.
What you ARE doing wrong is making up a totally fake name for that file and somehow expecting PHP to magically fix that.
You need to first confirm that an upload actually occurred and SUCCEEDED
if ($_FILES['frmUpload']['error'] !== UPLOAD_ERR_OK) {
die("File upload failed with error code #" . $_FILES['frmUpload']['error']);
}
Then just use the standard temp filename that PHP assigns, not the utterly meaning filename that existed on the client:
$data->read($_FILES['frmUpload']['tmp_name']);
And of course, you should probably check if that upload really is an excel file, and not something completely different.