Bilder in mysql datenbank hochladen!


F

fishy

Hallo ich sitze jetzt seit 3 tagen daran bilder in meine Mysql datenbank hochzuladen aber nix changce.

Man soll die halt per <form> auf dem localen Pc anwählen können und die soll dann in ein blop feld namens bild hochgeladen werden.

Hat da einer nen stückel quellcode oder weis wo ich sowas finde?
verzweifle schon..

Wenn ja Quellcode gleich an videosavers@gmx.net

wäre sehr dankbar.

greetz fishy(!)
 
U

ufoman2

äh, wo problem genau?

Ok, wo genau hakst Du denn fest? So in den blauen Himmel schiessen will ich ja auch nicht...

Aber prinzipiell läuft das so, dass ein Bild hochgeladen wird, Du den Filenamen mitbekommst und diese Datei dan bit-weise in Deine Datenbank reinlädst. So hattest Du es doch vor, oder? Oder fehlte Dir der Ansatz. Wo ist das Problem: Hochladen, Einlesen oder in Datenbank speichern?

Oder alles? ;-)

ufoman2
 
F

fishy

THX

Jo das Problem ist gelöst:) danke es war irgentein fehler :) (lalalala)

Dankle trozdem :)

fishy
 
A

alki

Generell ist eigentlich eher abzuraten, Binary Data in einer Datenbank zu speichern. Es ist langsam, _macht_ die Datenbank langsam und fehleranfällig.

Speichere doch einfach den Pfad zu den Imagedateien in deiner Datenbank.

Gruss
Alki
 

Moartel

Erfahrenes Mitglied
Die Idee von Alki finde ich gut. Mach einfach ein dir mit den Pics und speichere nur den Dateinamen in der DB. Oder du machst es ganz anders (was auch evtl. Fehler bei gleichen Dateinamen ausschließen würde) und lädst das Pic erstmal in ein temp-dir. Dann benennst du es um (als Namen nimmst du eine Zahl aus ner auto_increment Spalte in MySQL) und kopierst es dann in das endgültige Verzeichnis mit den Bildern. In der Db kannst du dann neben dem Bildnnamen auch noch weitere Infos dazu speichern und so ne nette Galerie aufziehen. Alls dynamisch in PHP.
 

ricoL

Grünschnabel
Ich steig mal bei dem Problem hier mit ein, weil ich ein ähnliches habe :(

PHP:
<html>
<head>
<title></title>
</head>
<body>

<?php

$uverz = "upload";

if ($_POST[sent])
{
	if (!file_exists($uverz))
	{mkdir ($uverz,0755);}

	if ($FILES[neuedatei][size] > 100000)
		{$fehler = "<br>Die Datei überschreitet die max. Grösse";}
	
	if (!($FILES[neuedatei][typ] == 'image/pjpeg' OR $FILES[neuedatei][typ] == 'image/gif'))
		{$fehler.= "<br> Unzulässiger Dateityp, es wird nur jpg oder gif akzeptiert";}

	if (!$fehler)
		{
		$name =uniqid("");
		switch ($FILES[neuedatei][type])
			{
			case 'image/pjpeg';
			$name.=".jpg";
			break;
			 
			case 'image/gif';
			$name.=".gif";
			break;
			}	

	$name = $uverz ."/". $name;

	copy($FILES[neuedatei][tmp_name], $name);
		}
}
else
{
	echo "<h2>".$fehler."</h2>";
} 
?>

<form action ="<?php echo $PHP_SELF ; ?>" method="post" enctype="multipart/form-data">
<input type="file" name ="neuedatei"><br><br>
<input type="submit">
<input type="Reset" value="Löschen">
</form>	


</body>
</html>
Es wird mir das Formluar angezeigt, jedoch wird nichts hochgeladen :(
Habt ihr eine Idee woran das liegen könnte?

Den Ordner upload habe ich schon erstellt und Rechte 755 hat er auch.
 

Chino

Erfahrenes Mitglied
Original geschrieben von ricoL
Es wird mir das Formluar angezeigt, jedoch wird nichts hochgeladen :(
Habt ihr eine Idee woran das liegen könnte?
Also ich glaube, dass hier im Forum genug Beiträge zum Thema Dateiupload zu finden sind. Warum dann einen von vor 3 Jahren hochpushen?

Nur mal so einen kleinen Tipp:

PHP:
if ($_POST[sent]) { 
}
Wo kommt die Variable denn her? :rolleyes:
 
C

Champion767

Ich hab eine Frage: Wie mach ich das denn mit Bilder per Pfad in der Datenbank? Welche Schlüssel mit welchen Attributen muss ich anlegen und wo muss was rein? Ich benutze phpmyadmin. Bin dankbar für jede Hilfe...
 
C

Champion767

Sorry das versteh ich nichts ganz! :) Kann mir einer vielleicht exakt sagen wo ich den Pfad beim Schlüssel etc hinschreiben muss etc. Trotzdem danke für die schnelle Antwort!

PS: Ach ja ich will nur den Pfad zum Bild speichern nicht das Bild!
 
E

empireblue

Hallo zusammen,

ich würde nur den Dateinamen in der DB speichern, der Pfad zum Bildverzeichnis in einer config-Datei als Konstante. Wichtig beim Dateiupload ist das Verstehen des Ablaufes, sprich wie ein Hochladen funktioniert bzw was auf dem Server passiert.

Viele sind hier mit Sicherheit bereit zu helfen, doch können es - auf Grund des Lerneffektes - nur Denkanstöße sein.
Jenser
 

mr-otin

Mitglied
Hallo,

Bekomme den Pfad in die DB geladen nur wird der Name in einen tempname umgewandelt und als Pfad in den PHP Tempordner geladen. Bsp:

Richtiger Name: bot_right.gif

In der DB: /home/htdocs/web26/phptmp/phpt4IHfi

dies ist der Code:

PHP:
if(isset($userfile)){ 	
  include("news_config.inc.php");
  if ($userpw==$adminpasswort) 
  {
	$verbindung=mysql_connect($dbserver,$dbuser,$dbpass);
	if ($verbindung) 
        { 
	    echo "<br>\n";
	 } else {
	     echo"Keine Verbindung.<br>\n";
	     echo mysql_errno() . ":" . mysql_error() . "<br>\n";
	}
	if(mysql_select_db($dbname, $verbindung))
        { 
	    echo" <br>\n";
        } else {
            echo"Datenbank : $dbname konnte nicht ausgewählt werden Error.<br>\n";
	    echo mysql_errno() . ":" . mysql_error() . "<br>\n"; 
	 }		
	if (($userfile == "")) { 
	    die(" <b>Bitte alle Felder ausfüllen!</b>");
	} else {
	   $query = "INSERT INTO cms_pic (PICNAME, PATH)
	                       VALUES ('$userfile','$pfad')";
	    echo "Bild wurde erfolgreich in die DB geschrieben!\n";
	    mysql_query($query);
	    mysql_close();
	if (is_uploaded_file($userfile)) {
	    $res = copy($userfile, $pfad.$userfile_name);
	if (!$res) {
        echo "Upload fehlgeschlagen"; exit; 
	} else
         echo "<b>Upload war erfolgreich</b>";
	}
    }
}
}
wie kann ich das Prob. loesen? Besten dank im vorraus,

best regards
Dave