Hej Hm.. Efter fileupload-kontrollen är en input type="file" så har webbläsaren lite att säga till om; det är en säkerhetsrisk att låta hemsidan ladda upp vilken fil som helst, det är användaren som aktivt måste göra det. Ok bra svar, kan nog se lösningen nu. Saker finns inte kvar, det råkar bara vara så att asp.net sätter sakerna till samma värde som när de skickades till servern. Allting skickas alltid till servern helt enkelt. Jamen så klart :) Nu förstår jag faktiskt helt och hållet varför det fungerar som det gör.FileUpload och postback
Jag har ett formulär med bland annat ett antal RadioButtonLists som har AutoPostBack = true (vissa kontroller ska göras SelectedIndexChanged). Till saken hör att jag också har en fileUpload, denna fungerar utmärkt OM det sista man gör innan submit är att välja fil att ladda upp. Om man först väljer fil och sedan ändrar i valet i radiobuttonlistan så töms fileUpload.
Jag antar att det finns lösningar som t.ex. att man tvingar användaren att göra filvalet sist men jag vill helst inte det.
Kort: Finns det något sätt att mellanlagra den fil som är vald i FileUpload under en postback och innan filen laddas upp, så att FileUpload har en vald fil efter postback utan att ngt är uppladdat?Sv: FileUpload och postback
Mitt förslag är att antingen:
a) Vid varje postback kolla om någon fil skickas, om så rä fallet så sparas den temporärt på servern. när man sedan klickar på knappen för submit så kollar man ifall det finns någon tempfil sedan tidigare. Själva fileupload-kontrollen kan man dölja och ersätta med en readonly-textruta samt en vanlig (ej postback) knapp som anropar .click()-metoden på fileupload-elementet. På så vis märker besökaren ingenting, och filen laddas upp vid första postbacken efter att man valt filen. Resten får man grejja med på servern.
b) Kör med ajax, och lägg upload-mojjen utanför alla updatepanels.
c) Lägg upload-saken i en helt egen sida, inbäddad med iframes.Sv:FileUpload och postback
Det som jag tycker var konstigt bara är att valet i en file upload "försvinner" under en postback medan valen man gör t.ex. i en radio buttonlist eller dropdownlist inte gör det. Man kan ju ändra i en dropdown så att selectedindex är t.ex. 2 och selected index kommer ju vara 2 även efter postback, tills man explicit sätter den till något annat eller helt laddar om sidan.
Det jag skulle vilja helst är att valet man gjort i en fileupload finns kvar efter postback, d.v.s. utan att något laddas upp men att kontrollen fortfarande efter postback pekar på den fil man har valt tills man säger åt fileupload att ladda upp filen. I mitt fall när man trycker submit i formuläret.
Men nu har jag en uppsättningn lösningar på g så, tack! :)
//davidSv: FileUpload och postback
När det gäller fileupload så är det en säkerhetsrisk att låta annat än användaren välja en fil så därför är det helt omöjligt att sätta värdet på en upload-ruta. Man får fuska helt enkelt, men det går inte att komma undan uppladdningarna, om man inte kör med ajax eller använder iframes lite finurligt.Sv:FileUpload och postback
//David