2016-07-26 15 views
2

Ich möchte Excel-Datei mit PHP hochladen und wollte einige Dateioperation in dieser Excel-Datei durchführen. Ich bin nicht in der Lage, die Datei hochzuladen. Wenn jemand eine Idee hat, bitte helfen Sie, auf der Serverseite, wie man den Pfad von wo die Datei hochgeladen wurde?So laden Sie Excel-Datei auf PHP-Server von <input type = "file">

$ target_dir = 'uploads /'; funktioniert nicht für mich. und meine Datei ist in D: Bitte helfen.

PHP CODE:

<?php  
if(isset($_POST['SubmitButton'])){ //check if form was submitted 

$target_dir = 'uploads/'; 
$target_file = $target_dir . basename($_FILES["filepath"]["name"]); 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

require_once dirname(__FILE__) . '/Includes/Classes/PHPExcel/IOFactory.php'; 

$inputFileType = PHPExcel_IOFactory::identify($target_file); 

$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
$objPHPExcel = $objReader->load($target_file); 

$i=2; 
$val=array(); 
$count=0; 
for($i=2;$i<34;$i++) 
{ 
$val[$count++]=$objPHPExcel->getActiveSheet()->getCell('C'.$i)->getValue(); 
} 
//echo'<pre>';print_r($val); 
}  
?> 

HTML-Code:

<body> 
<form action="" method="post" enctype="multipart/form-data"> 
<input type="file" name="filepath" id="filepath"/></td><td><input type="submit" name="SubmitButton"/> 
</body> 

Antwort

1

Als erstes müssen Sie die Datei, bevor der Leseleitung laden:

$target_dir = 'uploads/'; 
$target_file = $target_dir . basename($_FILES["filepath"]["name"]); 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

move_uploaded_file($_FILES["filepath"]["tmp_name"], $target_file); 

// rest of your code... 

jetzt sollten Sie in der Lage sein, auf die Datei zu arbeiten. vorher war die Datei nie in Ihrem Upload-Ordner.

+0

Ich erhalte diesen Fehler: Warnung: move_uploaded_file (uploads /test1.xlsx): Fehler beim Öffnen des Streams: – anish

+0

move_uploaded_file sollte 2 Parameter erhalten, sehen Sie sich mein Beispiel an. Sie haben den tmp_name der Quelle verpasst –

+0

In diesem ($ _FILES ["Dateipfad"] ["tmp_name"], $ target_file); Was ist ["Dateipfad"]? – anish

0

U Code nicht schreiben Datei zu.

move_uploaded_file() 
+0

können Sie bitte etwas näher erläutern? – anish

+0

Sie sagen, dass Ihre Datei nicht hochlädt. Derzeit befindet sich Ihre Datei im temporären Verzeichnis. Sie müssen move_uploaded_file verwenden, um die Datei in das Zielverzeichnis zu verschieben. Hier ist die vollständige Referenz http://php.net/manual/en/function.move-uploaded-file.php –

0

Sie müssen Ihre Datei aus dem temporären Upload-Verzeichnis in das gewünschte Verzeichnis mit der move_uploaded_file()-Funktion verschieben.

Es gibt 2 Argumente, die Sie für die Funktion move_uploaded_file() setzen müssen - die temporäre Datei, die Sie gerade hochgeladen haben (zB $_FILES["file"]["tmp_name"]), und dann das Verzeichnis, in das Sie verschieben möchten ... So würde es am Ende aussehen wie dies: move_uploaded_file($_FILES["file"]["tmp_name"], $path_of_new_file)

+0

Das mache ich jetzt, aber dieser Fehler bekomme ich: Warnung: move_uploaded_file (uploads/test1.xlsx): Fehler beim Öffnen des Streams, test.xlsx ist in D:/wie das System kommt zu wissen, dass es es besonders von D nehmen muss: nur und wenn jemand es in E hat: dann? – anish

0
if(isset($_POST['SubmitButton'])){ 
    try {  //attached file formate 
    $statement = $db->prepare("SHOW TABLE STATUS LIKE 'table_name'"); 
    $statement->execute(); 
    $result = $statement->fetchAll(); 
    foreach($result as $row) 
     $new_id = $row[10]; //10 fixed 

    $up_filename=$_FILES["filepath"]["name"]; 
    $file_basename = substr($up_filename, 0, strripos($up_filename, '.')); // strip extention 
    $file_ext = substr($up_filename, strripos($up_filename, '.')); // strip name 
    $f2 = $new_id . $file_ext; 

    move_uploaded_file($_FILES["filepath"]["tmp_name"],"uploads/" . $f2); 

    // Client's info Insert MySQl 
    $statement = $db->prepare("INSERT INTO table_name (files) VALUES (?)"); 
    $statement->execute(array($f2)); 

    $success_message = "Excel file upload successfully!"; 
} 
catch(Exception $e) { 
     $error_message = $e->getMessage(); 
} 
} 

Formularcode:

<form action="" method="post" enctype="multipart/form-data"> <input 
type="file" name="filepath" id="filepath"/></td><td><input 
type="submit" name="SubmitButton"/> 
</form>