Bilder uploaden, Dateinamen mit ID in Datensatz schreiben

tesarolle

Mitglied
Hallo Leute,

ich möchte eine Bildergallerie machen, bzw. mir zu jedem DAtensatz ein Bild anzeigen lassen.

Leider weiss ich nicht so genau wie ich an die ganze Sache rangehen soll. Ich will i ersten Schritt über ein Formular ein Bild uploaden in einen bestimmten Ordner.

In meinem Script bzw. HTML Formular ist dies das Feld "bild"


IMPRESSIONS.HTML

PHP:
<html><html>
<head><title>PHP workshop on form management: impressions.html</title><head>
<body>


<form method="post" action="ajoutimp.php">
Your name : <input type="text" name="nom"><br>
Your e-mail : <input type="email" name="email"><br>
Did you <input type="radio" name="impression" value="aime"> lode
<input type="radio" name="impression" value="pasaime"> or not this Website.
<br>


<br>File to upload/store in database:<br>
    <input type="file" name="bild"  size="40">


Your comments : <textarea name="commentaires"></textarea>
<br><br>
<input type="submit" name="valider" value="Send">
</form>



</body>
</html><html>

Wie übergebe ich denn nun eigentlich den Dateinamen des Bildes an meine PHP-Datei?


PHP:
<html>
<head><title>PHP workshop for form management: ajoutimp.php</title><head>
<body>

<?php

$nom=$_POST['nom'];
$bild=$_POST['bild'];


$ip=$_SERVER["REMOTE_ADDR"];

$host=gethostbyaddr($ip);


$sql = "INSERT INTO datensatz ( id , nom , date, time, ip, host, bild )
VALUES ('', '$nom', now(), now(), '$ip', '$host', '$bild')";

db = mysql_connect('localhost', 'root', 'test');
      mysql_select_db("test");









print("                   VIELEN DANK FÜR IHRE EINGABEN                    ") ;



     
        
mysql_query($sql, $db);



?>



</body>
</html>


Und ein weiteres Problem ist, das wenn es bereits identische Bildnamen gibt, ich am liebsten die Bilder mit Angabe eine ID speichern würde, sodass diese eindeutig sind. Wie kann ich das realisieren? D. h. doch eigentlich wenn ich alle JPGS in einen Ordner speichere bzw, uploaden lasse, ich die Bild-Dateien entsprechend benennen muss beim Upload-Vorgang?

Vielen Dank schon einmal für Eure Hilfe!
Gruß
Tesa!
 
Aber wie sieht es im letzten Absatz meines Eintrages mit der Beantwortung aus? Wie kann ich die Bilddateien so umbenennen (schon beim Upload), das es zu keinen Dopplungen kommt?

Was ich in dem Script auch nicht verstehe wie ich festlegen kann in welchen Ordner die Bilder upgeloadet werden?

Sie landen immer im Stammverzeichnis mein PHP-Installation!

Gruß
Tesa
 
Irgendwo in dem Tutorial findest Du diese Zeile:

PHP:
copy("$tempname", "$name");

Dann schaust Du Dir mal [phpf]copy[/phpf] an, dort siehst Du dann, was $tempname und $name sind. Das eine ist Quelle, das andere Ziel.

Dann passt Du die Zielvariable an, so dass sie auf den richtigen Ordner verweist mit dem richtigen Dateinamen (an den Namen kannst Du doch einfach die id mit ranpappen oder nen timestamp oder sowas) und dann sollte es funktionieren.
 
OK und wie mache ich das in der betreffenden Zeile? ICh bin anfänger und weiss nicht wie ich das anhänge! (:-

ich will unabhängig vom Laufwerk die JPG Datei speichern und zwar immer unter dem Ordner "Upload"! Wie hänge ich einen Timestamp dran?
 
Probiers so:
PHP:
$path = '/upload/'.$dateiname;

Einen Timestamp bekommst du mit [phpf]time[/phpf].
 
Er sagt mir jetzt zwar das die Datei erfolgreich hochgeladen werden konnte, aber in meinem Ordner ("upload") ist nichts driN!

Was läuft denn hier falsch?

PHP:
<?php
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name']; 
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size']; 
$path = '/upload/'.$name;


if($type != "image/gif" && $type != "image/pjpeg") {
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if($size > "15000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
} 


if(empty($err)) {
    copy("$tempname", "$path");
    echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
else {
    foreach($err as $error)
    echo "$error<br>";
}
?>
 
Zurück