M
MF
Hallo,
folgendes versuche ich gerade zu erstellen:
Auf einer Seite die ich gerade entwickel soll der Nutzer die Möglichkeit haben seinem Profil ein Bild beizufügen. Hat er dies bereits getan soll er es auch wieder löschen oder gegen ein neues eintauschen können.
Da man eine Seite ja immer möglichst idiotensicher machen und dennoch schnellen Aufbau haben will stellt sich nun folgendes Problem dar:
Der user begint sein Profil zu erneuern und beabsichtigt sein bereits bestehendes Bild gegen ein anderes zu ersetzen, dann jedoch entscheidet er sich es ganz zu löschen. Der User hat allerdings im File-Input bereits eine datei ausgewählt, er drückt also auf löschen und schickt das Forumlar ab. Nun wird ein völlig überflüssiger Upload gestartet und zwar das Bild was eigendlich garnicht benötigt wird, wird trotzdem auf den server geladen.
Da man nun mit der aktuellen Browsergeneration das Value eines File-Inputs nicht mehr setzen sondern nur ausgeben lassen kann habe ich versucht eine andere Möglichkeit zu finden das File-Input zu leeren und habe folgende Funktion geschrieben:
Das funktioniert soweit so gut.
Wenn der User sich dann aber doch wieder umentschließt und doch ein neues Bild haben will und wieder ein Bild aussucht und dann das Formular abschickt so wird das Bild einfach nicht übertragen. Das PHP-Script auf der nächsten Seite kennt dann diese Variable "npic" überhaupt nicht, als würde sie nicht übergeben werden.
Weis hier einer die Lösung des Problems?
Mit dem Reset des ganzen form wäre theoretisch und praktisch das fileinput leer aber auch alle anderen Anderungen die der User vorgenommen hat wären somit hinfällig.
Grüsse
Marcus
folgendes versuche ich gerade zu erstellen:
Auf einer Seite die ich gerade entwickel soll der Nutzer die Möglichkeit haben seinem Profil ein Bild beizufügen. Hat er dies bereits getan soll er es auch wieder löschen oder gegen ein neues eintauschen können.
Da man eine Seite ja immer möglichst idiotensicher machen und dennoch schnellen Aufbau haben will stellt sich nun folgendes Problem dar:
Der user begint sein Profil zu erneuern und beabsichtigt sein bereits bestehendes Bild gegen ein anderes zu ersetzen, dann jedoch entscheidet er sich es ganz zu löschen. Der User hat allerdings im File-Input bereits eine datei ausgewählt, er drückt also auf löschen und schickt das Forumlar ab. Nun wird ein völlig überflüssiger Upload gestartet und zwar das Bild was eigendlich garnicht benötigt wird, wird trotzdem auf den server geladen.
Da man nun mit der aktuellen Browsergeneration das Value eines File-Inputs nicht mehr setzen sondern nur ausgeben lassen kann habe ich versucht eine andere Möglichkeit zu finden das File-Input zu leeren und habe folgende Funktion geschrieben:
Code:
function reset_fileinput()
{
//löschen des Fileinputs
var Knoten = document.getElementById('npic_td').firstChild;
document.getElementById('npic_td').removeChild(Knoten);
//erstellen eines neuen Fileinputs
var newFileInput = document.createElement('input');
var newFileType = document.createAttribute('type');
newFileType.nodeValue = 'file';
newFileInput.setAttributeNode(newFileType);
//Einfügen des neuen Fileinputs
var Ziel = document.getElementById('npic_td');
Ziel.appendChild(newFileInput);
//zuweisen der Attribute
Knoten.setAttribute("id","npic_file");
Knoten.setAttribute("name","npic");
}
Wenn der User sich dann aber doch wieder umentschließt und doch ein neues Bild haben will und wieder ein Bild aussucht und dann das Formular abschickt so wird das Bild einfach nicht übertragen. Das PHP-Script auf der nächsten Seite kennt dann diese Variable "npic" überhaupt nicht, als würde sie nicht übergeben werden.
Weis hier einer die Lösung des Problems?
Mit dem Reset des ganzen form wäre theoretisch und praktisch das fileinput leer aber auch alle anderen Anderungen die der User vorgenommen hat wären somit hinfällig.
Grüsse
Marcus