Hallo, ich habe ein Formular erstellt, mit dem ich neben Textinhalten auch eine Bilddatei hochladen kann und in einer MySQL-DB ablege (ich weiß um die Problematik mit BLOB-Dateien in MySQL – soll aber so bleiben). Funktioniert auch prima. Im nächsten Schritt kann ich die geladenen Dateien zur Überprüfung anzeigen lassen und ggf. ändern oder ganz löschen. Klappt auch soweit.
Nun kommt die Frage, wie kann ich die geladene Bilddatei gegen eine neue austauschen (auch in die DB)?
Hier der Code zur Eingabe in das Formular (als Auszug)
... und der Teil HTML mit dem Formular
Das Script zum Ändern bzw. Löschen der Eingaben nur als Auszug:
... und der Teil im Formular, zumindest als Auszug für die Texte (Bsp. Lage/Ort):
Wie kann ich nun die geladene Bilddatei austauschen in diesem Schema?
Danke für jede Hilfe!
Nun kommt die Frage, wie kann ich die geladene Bilddatei gegen eine neue austauschen (auch in die DB)?
Hier der Code zur Eingabe in das Formular (als Auszug)
PHP:
<?php
if($sent)
{
if(!is_uploaded_file($neuedatei))
{$fehler="<center>Es wurde keine Datei hochgeladen.</center>";}
else
{
if($neuedatei_size>100000)
{$fehler.="<center>Die Datei ist zu groß!</center>";}
if(!($neuedatei_type == 'image/pjpeg' OR $neuedatei_type == 'image/gif' OR $neuedatei_type == 'image/png'))
{$fehler.="<center>Der Dateityp ist nicht zulässig!</center>";}
}
//Ende else keine Datei hochgeladen
if(!$fehler)
{
include('connect_i.php');
$datei=fopen($neuedatei,'r');
$data=addslashes(fread($datei,$neuedatei_size));
$sql="INSERT INTO $tabellenname (dateityp,datei) values ('$neuedatei_type',now(),'$data')";
if(!mysql_query($sql,$link))
{$fehler.="<center>Der Upload ist aufgrund eines Datenbankfehlers gescheitert.</center>";}
}
if($fehler)
{
$meldung="<center>".$fehler."</center>";
}
else
{
echo "<p align=center>Die Daten wurden erfolgreich in die Datenbank eingetragen.p>";
}
echo $meldung;
}
if(!$sent)
{
?>
... und der Teil HTML mit dem Formular
Code:
<form action='<? echo $PHP_SELF; ?>' method='post' enctype='multipart/form-data'>
<input type="hidden" name="sent" value="1">
<table>
<tr valign="top">
<td align="left" class="text" colspan="2">Die Bild-Datei auswählen (ggf. 'Platzhalter' laden)</td>
</tr>
<tr>
<td align="left" colspan="2"><input type="file" name='neuedatei' size="54"><br><br></td>
</tr>
</table>
Das Script zum Ändern bzw. Löschen der Eingaben nur als Auszug:
PHP:
<?php
require('connect_i.php');
//Löschen eines Datensatzes
if($sent==1)
{
$sql = "DELETE FROM $tabellenname WHERE id=";
$sql.=$id;
@mysql_query($sql, $link);
}
//Speichern der neuen Werte
if($sent==2)
{
$sql = "UPDATE $tabellenname SET ";
$sql.= " kategorie = '$kategorie', ";
$sql.= " objekttyp = '$objekttyp', ";
$sql.= " beschreibung = '$beschreibung', ";
$sql.= " head = '$head', ";
$sql.= " adresse = '$adresse', ";
$sql.= " lage = '$lage', ";
$sql.= " lage1 = '$lage1', ";
$sql.= " info = '$info', ";
$sql.= " ort = '$ort' ";
$sql.= "WHERE id=";
$sql.=$id;
@mysql_query($sql, $link);
}
//Anzeigen des Formulars zum Bearbeiten eines Datensatzes
if($sent==3)
{
$sql = "SELECT * FROM $tabellenname WHERE id=";
$sql.=$id;
$result=@mysql_query($sql, $link);
?>
... und der Teil im Formular, zumindest als Auszug für die Texte (Bsp. Lage/Ort):
Code:
<form action='<?php echo $PHP_SELF; ?>' method='post'>
<input type="hidden" name="sent" value="2">
<input type="hidden" name="id" value="<?php echo mysql_result($result,0, 'id'); ?>">
<table>
<tr valign="top">
<td align="left" class="text">Lage / Ort</td>
<td align="left">
<input type="text" name='ort' size="50" value='<?php echo mysql_result($result,0, 'ort'); ?>'></td>
</tr>
</table>
</form>
Wie kann ich nun die geladene Bilddatei austauschen in diesem Schema?
Danke für jede Hilfe!