onchange submit

Ozzy Ozborn

Erfahrenes Mitglied
Hi,

eine kurze Frage: ich habe in einem Formular ein upload-Feld (type=file). Nun will ich, dass bei Änderung des Inhaltes (onchange) das das Bild hochgeladen wird. Nur weiß ich leider nicht, wie ich das machen kann. Bei Submit wird folgende Funktion ausgeführt:


if($send)
{
if(isset($datei) && $datei!="none")
{

$user_id = "$pwd-$Anzahlbilder";
$dateiendung = strrchr($datei_name, ".");
$neuer_dateiname = $user_id.$dateiendung;
move_uploaded_file($datei, "../cache/".$neuer_dateiname);
}
...

Was muss ich denn beim onchange aufrufen, damit das Bild auch hochgeladen wird? Kenne mich leider nicht so wirklich gut aus mit php...

Vielen Dank im Voraus, Ozzy
 
Mit onchange meinst du vermutlich das JavaScript-Event, oder? In PHP existiert so etwas nicht. Wenn du JS meinst, dann musst du bei onchange das Formular einfach submitten. Ansonsten bitte mal spezifischer ausdrücken was du meinst :)
 
Wenn ich das "submitte", wird leider das Bild nicht hochgeladen; er geht auch nicht in meinen Send-Code rein; deshalb eben meine Frage, wie ich das beides quasi "verknüpfen" kann:


<input name="datei" type="file" style="width:300px;" onchange="javascript:submit();"><br>
<input name="send" type="submit" value="Upload">

Ozzy
 
Wieso soll das Formular nicht abgeschickt werden, wenn man ganz normal auf einen Butten drückt?
Nach Deiner gewünschten Variante, erscheint ein Filedialog in dem man eine Datei auswählt und diese danach sofort hochgeladen wird? Verklickt man sich nun, wird sofort die fehlerhafte Datei hochgeladen, was nicht im Sinne des Erfinders sein sollte.

snuu
 
Eigentlich wollte ich nur, dass man sofort ein "Preview" für das Bild bekommt, das man ausgewählt hat; oder gibt es da noch andere Alternativen?
 
Hab es jetzt mit JavaScript umgesetzt; hab also doch noch eine Möglichkeit gefunden. Und da JS ja Clientseitig ist, müssen die Bilder vorher nicht einmal hochgeladen werden :)

Trotzdem vielen Dank für Eure Bemühungen! Ozzy
 
Wäre noch nett, wenn du deine Lösung hier postest, damit auch andere davon profitieren können. Ich nehme an, du hast ein iFrame verwendet, oder?
 
Sorry, das hätte ich wirklich mal machen können... An sich super einfach:


function vorschau()
{

if (document.einstellen.datei1.value != '') {
document.img1.src = document.einstellen.datei1.value;
}
}
</script>

...

<input name="datei1" type="file" style="width:500px;" onchange="vorschau();">
<img name="img1" /height=50>


So einfach geht das. Man kann natürlich noch den Bereich vorher auf hidden setzten, oder den Inhalt des divs erst schreiben, wenn eine Datei angegeben wurde, aber ist ja jedem selbst überlassen...


MfG, Ozzy
 
Zurück