Hallo.
Ich schreibe eine kleine Datenbank, in der auch Bilder gelistet werden sollen.
Zuerst habe ich selbst einen Upload-Skript geschieben, der auch funktionierte. Aber fast alle Bilder wurden beim Upload zerstört. Manche kann man gar nicht mehr öffnen, manche werden fehlerhaft dargestellt.
Nunja, dann bin ich auf die Suche nach dem Problem gegangen und habe diesen Skript gefunden.
Leider ist hier aber auch keine Besserung zu erkennen. Auch mit diesem Skript werden die Bilder (fast alle) zerstört.
Ich nutze XAMPP in der Grundeinstellung.
Was mirt aufgefallen ist. Der IE kann etwas besser mit dem Upload umgehen. d.h. es werden nicht so viele Bilder als wie unter dem Firefox zerstört. Befriedigend ist es jedoch nicht.
Da ich bereits seit Tagen nach dem Fehler suche bin ich nunmehr ratlos und hoffe, dass mir eventuell hier geholfen werden kann.
Danke
Bilder werden zerstört
Hallo,
damit wir Dir helfen können solltest Du hier mal Dein Script posten. Dann kann ich mal drüber schauen. Was ich Dir aber zu 100% sagen kann, ich würde die Bilder nicht in einer Datenbank speichern. Es ist viel besser, nur den Pfad zu den Bild in einer Datenbank zu speichern.
Man sollte, wenn es möglich ist immer soviel wie möglich keine Daten in einer Datenbank speichern. Das Filesystem ist bei ein Server immer schneller als wie eine Datenbank.
Grüße Nico
damit wir Dir helfen können solltest Du hier mal Dein Script posten. Dann kann ich mal drüber schauen. Was ich Dir aber zu 100% sagen kann, ich würde die Bilder nicht in einer Datenbank speichern. Es ist viel besser, nur den Pfad zu den Bild in einer Datenbank zu speichern.
Man sollte, wenn es möglich ist immer soviel wie möglich keine Daten in einer Datenbank speichern. Das Filesystem ist bei ein Server immer schneller als wie eine Datenbank.
Grüße Nico
Ich habe nur den Pfad zu den Bilder gespeichert.
Die Bilder importiere ich über ein Upload in das Verzeichnis der Webseite um einen eventuellen Umzug der Seiten auf einen anderen Rechner problemloser zu halten (die Anwendung wird ausschliesslich lokal laufen).
Der Code:
$tempname = $_FILES['datei']['tmp_name'];
$dateiname = $_FILES['datei']['name'];
$ziel = "../upload/passbilder/";
$pfad = $ziel.$dateiname;
$type = $_FILES['datei']['type'];
$size = $_FILES['datei']['size'];
$max_size = 2000000;
$successGoTo ="../bestaetigung_passbild.php";
$errorGoTo ="../error_passbild.php?fehler=";
$types = array("image/gif", "image/jpeg", "image/pjpeg"); //fuer spaetere Verinfachung der Dateitypenkontrolle
$beschreibung = $_POST['beschreibung'];
$err=0;
//** ENDE Variabeln
/*
/*
* Ueberpruefe auf zulaessigen Dateityp (gif,jpg und bmp)
* Bei einer Auswahl anderer Dateitypen "Fehlercode 1"
*/
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/bmp" && $type != "image/jpg" && $type != "image/jpeg") {
$err = 1;
}
// ENDE - Ueberpruefung Dateityp
/*
* Ueberpruefe ob die Dateigroesse nicht die, in max_size festgelegte Groesse ueberschreitet
* Bei Ueberschreitung "Fehlercode 2"
*/
if($size > $max_size) {
$err = 2;
}
//ENDE - Ueberpruefung Groesse
/*
*
*/
if(empty($err)) {
copy("$tempname", "$pfad");
$insertSQL = "INSERT INTO tbl_passbilder (pass_beschreibung, pass_dateiname, pass_dateityp) VALUES ('$beschreibung', '$dateiname', '$type')";
mysql_select_db($database_guardian_db, $guardian_db);
$Result1 = mysql_query($insertSQL, $guardian_db) or die(mysql_error());
header(sprintf("Location: %s", $successGoTo));
}
//Wenn Arrar $err[] Fehlermeldungen enthaelt, diese ausgeben
else {
header(sprintf("Location: %s", $errorGoTo.$err));
}
?>
--
Die Bilder importiere ich über ein Upload in das Verzeichnis der Webseite um einen eventuellen Umzug der Seiten auf einen anderen Rechner problemloser zu halten (die Anwendung wird ausschliesslich lokal laufen).
Der Code:
$tempname = $_FILES['datei']['tmp_name'];
$dateiname = $_FILES['datei']['name'];
$ziel = "../upload/passbilder/";
$pfad = $ziel.$dateiname;
$type = $_FILES['datei']['type'];
$size = $_FILES['datei']['size'];
$max_size = 2000000;
$successGoTo ="../bestaetigung_passbild.php";
$errorGoTo ="../error_passbild.php?fehler=";
$types = array("image/gif", "image/jpeg", "image/pjpeg"); //fuer spaetere Verinfachung der Dateitypenkontrolle
$beschreibung = $_POST['beschreibung'];
$err=0;
//** ENDE Variabeln
/*
/*
* Ueberpruefe auf zulaessigen Dateityp (gif,jpg und bmp)
* Bei einer Auswahl anderer Dateitypen "Fehlercode 1"
*/
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/bmp" && $type != "image/jpg" && $type != "image/jpeg") {
$err = 1;
}
// ENDE - Ueberpruefung Dateityp
/*
* Ueberpruefe ob die Dateigroesse nicht die, in max_size festgelegte Groesse ueberschreitet
* Bei Ueberschreitung "Fehlercode 2"
*/
if($size > $max_size) {
$err = 2;
}
//ENDE - Ueberpruefung Groesse
/*
*
*/
if(empty($err)) {
copy("$tempname", "$pfad");
$insertSQL = "INSERT INTO tbl_passbilder (pass_beschreibung, pass_dateiname, pass_dateityp) VALUES ('$beschreibung', '$dateiname', '$type')";
mysql_select_db($database_guardian_db, $guardian_db);
$Result1 = mysql_query($insertSQL, $guardian_db) or die(mysql_error());
header(sprintf("Location: %s", $successGoTo));
}
//Wenn Arrar $err[] Fehlermeldungen enthaelt, diese ausgeben
else {
header(sprintf("Location: %s", $errorGoTo.$err));
}
?>
--
Ich habe die Seiten eben mal zu testzwecken auf meinen Webspace hochgeladen.
Auch hier werden die Bilder teilweise zerstört.
Und wie bei der Lokalen Anwendung werden mit dem Firefox fast alle zerstört, mit dem Internetexplorer nur einige.
Was mich nur ärgert ist:
Manchmal wird ein und das selbe Bild ohne Fehler übertragen, manchmal sind diese so zerstört das sie erst gar nicht mehr geöffnet werden können und manchmal nur einige Informationen - dann sehen die Bilder aus wie bei einem Schiebepuzzel.... ist mir echt ein Rätsel.
Auch hier werden die Bilder teilweise zerstört.
Und wie bei der Lokalen Anwendung werden mit dem Firefox fast alle zerstört, mit dem Internetexplorer nur einige.
Was mich nur ärgert ist:
Manchmal wird ein und das selbe Bild ohne Fehler übertragen, manchmal sind diese so zerstört das sie erst gar nicht mehr geöffnet werden können und manchmal nur einige Informationen - dann sehen die Bilder aus wie bei einem Schiebepuzzel.... ist mir echt ein Rätsel.
34% voll und Lokal habe ich mehr als wie nur ausreichend zur Verfügung.
Ich denke das Problem ist bei mir zu suchen denn:
Heute habe ich auf der Arbeit ein paar Bilder auf den Server ohne Probleme hochladen können und vor 5 Minuten auch von dem Rechner meiner Freundin aus.
Sehr merkwürdiges Verhalten.
Ich kam auf die Idee das das Problem auf meinem Rechner zu suchen ist weil der SQL-Skript, dür die Erstellung der Datenbank, unter dem Firefox in fast allen Fällen fehlerhaft ankam - im IE ging es dann schliesslich.
Der SQL-Skript dann Fehlerfrei übertragen.
phpMyAdmin zeigte zuvor mehrmals Fehlermeldungen im SQL-Syntax (als Beispiel: Ein Primärschlüssel einer Tabelle Mitarbeiter wurde in einer Tabelle "Dokumente" als diesen definiert - also völlig durch den Wind geschossen).
Auch hier war es mit dem IE kein Problem die Daten fehlerfrei hochzuladen. Der Firefox hat beim Übertragen fast alles zerstört oder durcheinandergewirbelt.
Das Problem verstehe ich wirklich nicht und ich werde da auch nicht lange nach suchen. Denke eine Neuinstallation des Systems oder Firefox ist wesentlich schneller als wie eine Fehlersuche (vorallendingen wenn man ein Image einer frischen Installation gemacht hat).
Aber trotzdem: Vielen Dank für den Zeitaufwand für mein Problem.
Ich denke das Problem ist bei mir zu suchen denn:
Heute habe ich auf der Arbeit ein paar Bilder auf den Server ohne Probleme hochladen können und vor 5 Minuten auch von dem Rechner meiner Freundin aus.
Sehr merkwürdiges Verhalten.
Ich kam auf die Idee das das Problem auf meinem Rechner zu suchen ist weil der SQL-Skript, dür die Erstellung der Datenbank, unter dem Firefox in fast allen Fällen fehlerhaft ankam - im IE ging es dann schliesslich.
Der SQL-Skript dann Fehlerfrei übertragen.
phpMyAdmin zeigte zuvor mehrmals Fehlermeldungen im SQL-Syntax (als Beispiel: Ein Primärschlüssel einer Tabelle Mitarbeiter wurde in einer Tabelle "Dokumente" als diesen definiert - also völlig durch den Wind geschossen).
Auch hier war es mit dem IE kein Problem die Daten fehlerfrei hochzuladen. Der Firefox hat beim Übertragen fast alles zerstört oder durcheinandergewirbelt.
Das Problem verstehe ich wirklich nicht und ich werde da auch nicht lange nach suchen. Denke eine Neuinstallation des Systems oder Firefox ist wesentlich schneller als wie eine Fehlersuche (vorallendingen wenn man ein Image einer frischen Installation gemacht hat).
Aber trotzdem: Vielen Dank für den Zeitaufwand für mein Problem.