Ich versuche, eine Tabelle hochzuladen und sie mit PHPExcel in eine MySQL-Datenbank einzulesen.
Für .xlsx-Dateien funktioniert es gut, aber wenn ich versuche, eine .ods-Datei hochzuladen, wird folgender Fehler ausgegeben: PHP Schwerwiegender Fehler: Aufruf einer Memberfunktion getNamespaces () für ein Nicht-Objekt in PHPExcel_1.7.9 / Classes / PHPExcel /Reader/OOCalc.php in Zeile 341
Was läuft falsch?
HTML-Formular:
%Vor%PHP (in derselben Datei):
%Vor%Wenn eine Datei auf Ihren Webserver hochgeladen wird, wird die Datei mit einem zufälligen Namen im temporären Ordner Ihres Systems gespeichert.
Sie haben versucht, die tatsächliche name
der hochgeladenen Datei anzugeben, aber da die Datei mit einem zufälligen Namen im Ordner tmp erstellt wurde.
Sie müssen stattdessen tmp_name
verwenden, die tatsächlich die zufällige benannte Datei zeigen.
Beachten Sie auch, in name
Sie haben nur den Namen der Datei, die hochgeladen wurde und nicht den Pfad,
Aber mit tmp_name
haben Sie den tatsächlichen Pfad zur Datei.
Sehen Sie das folgende Beispiel eines Datei-Uploads, den Sie erhalten würden.
%Vor%Ändern Sie stattdessen Ihren Code zu
%Vor%In meinem Fall gab es einen Fehler beim Erkennen der Erweiterung in dieser Zeile
%Vor%Wenn Sie lösen müssen, überprüfen Sie einfach den Namensparameter
%Vor%Der Rest funktioniert dank:)