Hallo Zusammen
Ich komme dem Problem einfach nicht auf die Spur. Über meine Webseite wollte ich eine SQL-Datei hochladen. Ihr wisst ja sicherlich, dass diese SQL-Dateien, wenn man diese mit einem Editor (bsp. Proton) öffnet, mehrzeilig sind und auch so von SQL und phpMyAdmin erkannt und korrekt ausgeführt werden.
Nun, wenn ich die Datei mittels Uploadformular hochlade, dann klappt das zwar, aber SQL gibt immer wieder einen Fatal Error in Line 1 zurück. Kopiere ich den Code so wie er in der SQL Datei steht in phpMyAdmin oder lade ich diese dort hoch, klappt alles.
ich schaute die hochgeladene Datei an und musste feststellen, dass der Upload den gesamten Inhalt der Datei nur auf eine einzige Zeile geschrieben hat, die fast unendlich in die Länge geht. Ich vermute dass dies der Grund für den Fehler ist.
Nun zu meiner Frage: Wie bringe ich PHP dazu, die Dateien während eines Uploads im Inhalt unverändert zu lassen?? So, dass die SQL-Datei auch nach dem Upload noch mehrzeilig ist, genau so, wie sie auch auf dem lokalen REchner gespeichert wurde ??
Hier noch die Uploadfunktion:
bis zum move_uploaded_file wird die Datei ja hochgeladen. Anschliessend sollte die SQL-Datei danach ausgeführt werden und in MySQL importiert werden. Quasi ein Bakup.
Freundliche Grüsse
Wolf
Ich komme dem Problem einfach nicht auf die Spur. Über meine Webseite wollte ich eine SQL-Datei hochladen. Ihr wisst ja sicherlich, dass diese SQL-Dateien, wenn man diese mit einem Editor (bsp. Proton) öffnet, mehrzeilig sind und auch so von SQL und phpMyAdmin erkannt und korrekt ausgeführt werden.
Nun, wenn ich die Datei mittels Uploadformular hochlade, dann klappt das zwar, aber SQL gibt immer wieder einen Fatal Error in Line 1 zurück. Kopiere ich den Code so wie er in der SQL Datei steht in phpMyAdmin oder lade ich diese dort hoch, klappt alles.
ich schaute die hochgeladene Datei an und musste feststellen, dass der Upload den gesamten Inhalt der Datei nur auf eine einzige Zeile geschrieben hat, die fast unendlich in die Länge geht. Ich vermute dass dies der Grund für den Fehler ist.
Nun zu meiner Frage: Wie bringe ich PHP dazu, die Dateien während eines Uploads im Inhalt unverändert zu lassen?? So, dass die SQL-Datei auch nach dem Upload noch mehrzeilig ist, genau so, wie sie auch auf dem lokalen REchner gespeichert wurde ??
Hier noch die Uploadfunktion:
PHP-Code:
$filepath = $_SERVER['DOCUMENT_ROOT']."/intern_dbs/sql_temp/";
$des_file = strtolower($filepath.$_FILES['sql_file']['name']);
if(move_uploaded_file($_FILES['sql_file']['tmp_name'], $des_file)) {
//Herstellen der DB Verbindung
$connectionid_b = mysql_connect ($db_host, $db_user, $db_pass);
if (!mysql_select_db ($db_name, $connectionid_b))
{
die ("<font color=red size=3><b>Datenbankverbindung fehlgeschlagen!</b></font><br />Konnte Backup nicht durchführen.<br /><br /><a href=\"".$_SERVER['PHPSELF']."?op=reback&make=default\" target=\"_self\" style=\"color:blue;\">[ <b>Zurück</b> ]</a>");
}
//Ausführen der SQL-Datei (IMPORT)
$sql = "source ".$des_file;
mysql_query($sql) OR die(mysql_error());
//Schliessen der DB-Verbindung
mysql_close($connectionid_b);
//Hochgeladene Datei vom Server (aus Sicherheitsgründen) wieder entfernen
$tmp_sql_file = $des_file;
unlink($tmp_sql_file);
Freundliche Grüsse
Wolf
Kommentar