Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > มีปัญหา อัพโหลดไฟล์ Excel ด้วยฟังก์ชั่น $_file แล้วไม่สามารถเปิดอ่านไฟล์ที่อัพโหลดได้ครับ



 

มีปัญหา อัพโหลดไฟล์ Excel ด้วยฟังก์ชั่น $_file แล้วไม่สามารถเปิดอ่านไฟล์ที่อัพโหลดได้ครับ

 



Topic : 120908



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



Code (PHP)
$file = $_FILES['fileupload']['name'];
$typefile = $_FILES['fileupload']['type']; 
$sizefile = $_FILES['fileupload']['size']; 
$DMY = date(dmY);
$Nfilename = "ExcelFile".$DMY;
///////////////////////////////////////////////////
/*
$typefile = array("xls","xlsx");
if(!in_array($_FILES['fileupload']['type'],$typefile))
{ 
	$alert = "ประเภทไฟล์ไม่ถูกต้อง อนุญาตให้ใช้ได้เฉพาะไฟล์ที่มีนามสกุลเป็น .xls (Excel 2003) หรือ .xlsx (Excel 2007) เท่านั้น<br><br>ประเภทไฟล์ของรูปนี้เป็นประเภท $typefile";
}
else
{
*/
	if(move_uploaded_file ($_FILES['fileupload']['tmp_name'],"ExcelFile/".$_FILES['fileupload']['name']))
	{
		$alert = "อัพโหลดไฟล์  $file เรียบร้อยแล้ว";
	}
	else
	{
		$alert = "ไม่สามารถอัพโหลดไฟล์ได้";
	}


จากโค้ดอัพโหลดนี้ ผมอัพไฟล์แล้ว ไม่สามารถเปิดอ่านไฟล์ได้ ตอนเปิดอ่านตรง ๆ โปรแกรมแจ้งว่า รูปแบบแฟ้มไม่ถูกต้อง

ซึ่งที่อัพเป็นไฟล์เปล่า เพราะต้องการนำไฟล์นั้นไปใช้ในการอัพเข้า mysql

จากตัวอย่าง

https://www.thaicreate.com/community/phpexcel-reader-excel-to-mysql.html

ตอนแรก ส่งไฟล์ด้วย $_file ตรง ๆ แล้ว phpexcel class หาไฟล์ไม่เจอ อ่านไฟล์ไม่ได้

เลยตั้งใจจะอ้อม อัพไฟล์ขึ้นไปก่อนแล้วให้อ่านจากที่อัพขึ้น

แต่ตอนนี้มีปํญหาว่า อ่านไฟล์ที่อัพไม่ได้เลย

ขอคำแนะนำทีครับ

/////////////////////////////////////////////
เพิ่มเติมครับ

อยากทราบ filetype ของ excel2003 และ excel 2007 ครับ

เท่าที่เช็คด้วยคำสั่ง $_FILES['var']['type']

มันได้ค่าเป็น application/vnd.openxmlformats-officedocument.spreadsheetml.sheet สำหรับ excel 2007

และ application/vnd.ms-excel สำหรับ excel 2003

มันมีค่าอื่นที่ใช้กำหนดประเภทรึป่าวครับ อย่างพวกรูปภาพ ก็แค่ image/jpg image/png image/gif ที่มันสั้น ๆ เอง



Tag : PHP, MySQL, HTML/CSS, JavaScript









ประวัติการแก้ไข
2016-01-15 16:11:35
2016-01-15 17:33:39
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-01-15 16:11:08 By : akkaneetha View : 2230 Reply : 3
 

 

No. 1

Guest


http://filext.com/faq/office_mime_types.php file type ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-15 21:13:34 By : deawx
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

อันที่จริงถ้าใช้

Code
move_uploaded_file ($_FILES['fileupload']['tmp_name'],"ExcelFile/".$_FILES['fileupload']['name'])

มันน่าจะตามต้นฉบับที่ Upload นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-16 13:09:23 By : mr.win
 

 

No. 3



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : mr.win เมื่อวันที่ 2016-01-16 13:09:23
รายละเอียดของการตอบ ::
ก็ไม่ทราบเหมือนกันครับว่าทำมั้ย แต่ตอนนี้ สามารถอัพไฟล์ได้ phpexcel class อ่านไฟล์ที่อัพได้ แต่ถ้าเปิดไฟล์ที่อัพด้วย office excel เปิดอ่านไม่ได้เหมือนเดิม
ล่าสุดก็ทำงานด้วยคำสั่งแบบนี้

Code (PHP)
<?php
////////////////////////////////////////////////////
$file = $_FILES['fileupload']['name'];

if($_FILES['fileupload']['type'] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
	{ $typefile = "xlsx"; }
else if($_FILES['fileupload']['type'] == "application/vnd.ms-excel")
	{ $typefile = "xls"; }
else
	{ $typefile = $_FILES['fileupload']['type']; }
$DMY = date(dmY);
$Excelfilename = "ExcelFile".$DMY;
/** PHPExcel */
require_once 'Classes/PHPExcel.php';
/** PHPExcel_IOFactory - Reader */
include 'Classes/PHPExcel/IOFactory.php';
///////////////////////////////////////////////////
$typeUP = array("xlsx","xls");
//$typeUP = array("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel");
if(!in_array($typefile,$typeUP))
{ 
	$alert = "<center>ประเภทไฟล์ไม่ถูกต้อง อนุญาตให้ใช้ได้เฉพาะไฟล์ที่มีนามสกุลเป็น .xls (Excel 2003) หรือ .xlsx (Excel 2007) เท่านั้น<br><br>ประเภทไฟล์ของเอกสารนี้เป็นประเภท $typefile</center>";
}
else
{
	// File Excel 2007
	if($typefile == "xlsx")
	{
		if(move_uploaded_file ($_FILES['fileupload']['tmp_name'],"ExcelFile/".$Excelfilename.".xlsx"))
		{
				/////////////////////////////////// Import to MySQL ///////////////////////////////////////////
				$filename = "ExcelFile".date("dmY");
				$inputFileName = "ExcelFile/$filename.xlsx";  
				$inputFileType = PHPExcel_IOFactory::identify($inputFileName);  
				$objReader = PHPExcel_IOFactory::createReader($inputFileType);  
				$objReader->setReadDataOnly(true);  
				$objPHPExcel = $objReader->load($inputFileName);  
				
				$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
				$highestRow = $objWorksheet->getHighestRow();
				$highestColumn = $objWorksheet->getHighestColumn();
				
				$headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null, true, true, true);
				$headingsArray = $headingsArray[1];
				
				$r = -1;
				$namedDataArray = array();
				for ($row = 2; $row <= $highestRow; ++$row) {
					$dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true, true, true);
					if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
						++$r;
						foreach($headingsArray as $columnKey => $columnHeading) {
							$namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
						}
					}
				}
				//echo '<pre>';
				//var_dump($namedDataArray);
				//echo '</pre><hr />';
				$i = 0;
				foreach ($namedDataArray as $result) {
						$i++;
						$strSQL = "";
						$strSQL .= "INSERT INTO member ";
						$strSQL .= "(IDstd,Username,Password,Prefix,fname,lname,class,room,yearin,rang,pic,status,note) ";
						$strSQL .= "VALUES ";
						$strSQL .= "('".$result["IDstd"]."','".$result["Username"]."' ";
						$strSQL .= ",'".md5($result["Password"])."','".$result["Prefix"]."' ";
						$strSQL .= ",'".$result["fname"]."','".$result["lname"]."' ";
						$strSQL .= ",'".$result["class"]."','".$result["room"]."' ";
						$strSQL .= ",'".$result["yearin"]."','".$result["rang"]."' ";
						$strSQL .= ",'".$result["pic"]."','".$result["status"]."' ";
						$strSQL .= ",'".$result["note"]."') ";
						mysql_query($strSQL) or die(mysql_error());
						echo "Row $i Inserted...<br>";
				}
				mysql_close();
			$alert = "อัพโหลดไฟล์  $file เรียบร้อยแล้ว : File Type Excel 2007";
		}
		else
		{
			$alert = "ไม่สามารถอัพโหลดไฟล์ได้";
		}
	}
	// File Excel 2003
	else if($typefile == "xls")
	{
		if(move_uploaded_file ($_FILES['fileupload']['tmp_name'],"ExcelFile/".$Excelfilename.".xls"))
		{
				/////////////////////////////////// Import to MySQL ///////////////////////////////////////////
				$filename = "ExcelFile".date("dmY");
				$inputFileName = "ExcelFile/$filename.xls";  
				$inputFileType = PHPExcel_IOFactory::identify($inputFileName);  
				$objReader = PHPExcel_IOFactory::createReader($inputFileType);  
				$objReader->setReadDataOnly(true);  
				$objPHPExcel = $objReader->load($inputFileName);  
				
				$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
				$highestRow = $objWorksheet->getHighestRow();
				$highestColumn = $objWorksheet->getHighestColumn();
				
				$headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null, true, true, true);
				$headingsArray = $headingsArray[1];
				
				$r = -1;
				$namedDataArray = array();
				for ($row = 2; $row <= $highestRow; ++$row) {
					$dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true, true, true);
					if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
						++$r;
						foreach($headingsArray as $columnKey => $columnHeading) {
							$namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
						}
					}
				}
				//echo '<pre>';
				//var_dump($namedDataArray);
				//echo '</pre><hr />';
				$i = 0;
				foreach ($namedDataArray as $result) {
						$i++;
						$strSQL = "";
						$strSQL .= "INSERT INTO member ";
						$strSQL .= "(IDstd,Username,Password,Prefix,fname,lname,class,room,yearin,rang,pic,status,note) ";
						$strSQL .= "VALUES ";
						$strSQL .= "('".$result["IDstd"]."','".$result["Username"]."' ";
						$strSQL .= ",'".md5($result["Password"])."','".$result["Prefix"]."' ";
						$strSQL .= ",'".$result["fname"]."','".$result["lname"]."' ";
						$strSQL .= ",'".$result["class"]."','".$result["room"]."' ";
						$strSQL .= ",'".$result["yearin"]."','".$result["rang"]."' ";
						$strSQL .= ",'".$result["pic"]."','".$result["status"]."' ";
						$strSQL .= ",'".$result["note"]."') ";
						mysql_query($strSQL) or die(mysql_error());
						echo "Row $i Inserted...<br>";
				}
				mysql_close();
			$alert = "อัพโหลดไฟล์  $file เรียบร้อยแล้ว : File Type Excel 2003";
		}
		else
		{
			$alert = "ไม่สามารถอัพโหลดไฟล์ได้";
		}
	}
	else
	{
		$alert = "ประเภทไฟล์เอกสาร Excel ที่ไม่รู้จัก กรุณาใช้ไฟล์เอกสารของ Excel 2003  หรือ  Excell 2007";
	}
}
?>



ซึ่งคิดว่า ที่เปิดอ่านไม่ได้ น่าจะเป็นเพราะสั่ง เปลี่ยนชื่อไฟล์และใส่นามสกุลให้ใหม่ เลยมีปัญหา แต่ก็ยังไม่รู้ว่าจะหาวิธีอื่นยังไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-17 00:48:28 By : akkaneetha
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : มีปัญหา อัพโหลดไฟล์ Excel ด้วยฟังก์ชั่น $_file แล้วไม่สามารถเปิดอ่านไฟล์ที่อัพโหลดได้ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่