N'abend,
Die Überschrift ist leider nicht sehr informativ, es ist aber auch ein schwer in wenigen Worten zusammenfassbares Problem.
Und zwar will ich einen kleinen Bilder upload machen.
Dabei hab ich folgendes Eingabefeld:
So jetzt will ich das in folgenden Skript verarbeiten:
Ich weiß auch schon wo der Fehler liegt, und zwar wenn ich OR empty($_POST['bild']) weg mache, funzt es mehr oder weniger einwandfrei ( es fehlt halt die variable im restlichen Skript. ).
Jedoch weiß ich sonst nicht, wie ich prüfen soll, ob eine Datei vorher ausgewählt wurden ist, und wie ich an die Bildmaße rankommen.
Ich habe schon probiert das ganze mit !isset() zu ersetzen (,da ich dachte es läge vielleicht am empty ), das ging aber auch nicht.
Danach hab ich nochmal bei selfhtml geguckt. Da steht als einzige 2 Bedingungen, dass es mit POST übergeben muss und im form stehen muss, dass es enctype="multipart/form-data" ist.
Wenn ich bei dem input der File die accept-Bedingung rausnehmen verändert sich trotzdem nichts.
Ich hoffe ihr könnt mir helfen.
0wnZ
Die Überschrift ist leider nicht sehr informativ, es ist aber auch ein schwer in wenigen Worten zusammenfassbares Problem.
Und zwar will ich einen kleinen Bilder upload machen.
Dabei hab ich folgendes Eingabefeld:
Code:
<html>
<head>
<title>
Bilderupload
</title>
</head>
<body>
<form action="../upload.php" method="post" enctype="multipart/form-data">
<h2>
Neues Bild hinzufügen
</h2>
Person: <input name="person" type="text" size="20" /><br />
Ort: <input name="ort" type="text" size="20" /><br />
Datum: <input name="datum" type="text" size="20" /><br />
Fotograf: <input name="fotograf" type="text" size="20" /><br />
Bild: <input name="bild" type="file" size="20" accept="text/*" /><br />
<input name="submit" type="submit" value="Bild hochladen" /><br />
</form>
</body>
</html>
PHP:
<html>
<head>
<title>
Bildupload
</title>
</head>
<body>
<?php
$server = "localhost";
$user = "root";
$password = "*****************";
$database = "wales";
if (isset($_POST['submit'])) {
// Prüfen, ob Eingabe gemacht wurde
if (empty($_POST['person']) AND empty($_POST['ort']) AND empty($_POST['datum']) AND empty($_POST['fotograf']) OR empty($_POST['bild'])) {
echo "Eingabe inkorrekt!<br />";
echo '<a href="../neu.php">Zurück</a>';
exit();
}
mysql_connect($server, $user, $password, $database);
if (file_exists($_POST['bild'])) {
echo "Es gibt bereits ein Bild mit diesem Namen.";
} else {
copy($_POST['bild'], "../bilder/");
echo "Das Bild".$_POST['bild']."wurde erfolgreich hochgeladen.";
//jetzt noch thumbnail erstellen
$ziel = $_POST['bild'];
$pfad = "../thumb/";
$size = getimagesize("../bilder/$ziel");
$breite = $size[0];
$hoehe = $size[1];
$neuehoehe = 70;
$neuebreite = intval($breite*$neuehoehe/$hoehe);
if ($size[2] == 2) {
$altesbild = ImageCreateFromJPEG("../bilder/$ziel");
$neuesbild = ImageCreate($neuebreite, $neuehoehe);
ImageCopyResized($neuesbild, $altesbild, 0, 0, 0, 0, $neuebreite, $neuehoehe, $breite, $hoehe);
ImageJPEG($neuesbild, "../thumb/$bild");
}
// jetzt noch alles in der Datenbank speichern
$query = "INSERT INTO
wales_bilder (person, ort, datum, fotograf, bildpfad, thumbpfad)
VALUES ('".$_POST['person']."','".$_POST['ort']."','".$_POST['datum']."','".$_POST['fotograf']."', '../bilder/', '../thumb/');";
$result = mysql_query($query) OR die(mysql_error());
echo "Es wurde nun noch ein Thumbnail erstellt und die nötigen Daten in die Datenbank geschrieben.<br />";
echo '<a href="../neu.php">Ein weiteres Bild hochladen</a><br />';
echo '<a href="../index.htm">Zurück zur Startseite.</a><br />';
}
} else {
echo 'Bitte benutze die <a href="../index.htm">Suchfunktion</a>';
}
?>
</body>
</html>
Jedoch weiß ich sonst nicht, wie ich prüfen soll, ob eine Datei vorher ausgewählt wurden ist, und wie ich an die Bildmaße rankommen.
Ich habe schon probiert das ganze mit !isset() zu ersetzen (,da ich dachte es läge vielleicht am empty ), das ging aber auch nicht.
Danach hab ich nochmal bei selfhtml geguckt. Da steht als einzige 2 Bedingungen, dass es mit POST übergeben muss und im form stehen muss, dass es enctype="multipart/form-data" ist.
Wenn ich bei dem input der File die accept-Bedingung rausnehmen verändert sich trotzdem nichts.
Ich hoffe ihr könnt mir helfen.
0wnZ