Just nu i M3-nätverket
Gå till innehåll

Få tillbaka formulärvärde ($_FILES) efter submit?


henrik d

Rekommendera Poster

Jag vill få tillbaka det som har skrivits i <input type="file" name="frm_file"> efter att jag har klickat Submit, alltså den ursprungliga sökvägen till filen jag försöker att ladda upp.

 

Jag vill inte att användaren ska behöva leta upp filen eller behöva skriva in sökvägen igen ifall uppladdningen misslyckades.

 

<?php

if(isset($_POST['submit'])) {  
  echo $_FILES['frm_file']['name']."<br/>"; //ger filnamn}
?>

<form method="post" action="<?php echo basename($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data">

<label>Bild:</label>
<input type="file" name="frm_file">

<input type="submit" name="submit" value="Spara">
<input type="reset" name="rensa" value="Rensa">

</form>

 

Länk till kommentar
Dela på andra webbplatser

Jag gjorde massa experiment med det där om jag inte minns fel. Jag kommer inte ihåg om jag någonsin lyckades.

 

Det som jag får för mig sådär i huvudet är väl att lägga till ett osynligt fält och klona sökvägen till det med Javascript

 

Länk till kommentar
Dela på andra webbplatser

Jag fick hjälp med en sådan lösning i forumet hos phpportalen (http://www.phpportalen.net/viewtopic.php?p=562903#562903) men nästa problem är att <input type="file" inte har någon "value"-parameter som man kan sätta. Alltså kan man inte skriva in den tidigare angivna sökvägen till filen om sidan laddas om.

 

 

 

Länk till kommentar
Dela på andra webbplatser

hur skulle javascript eller cookies hjälpa om "value" inte finns som attribut för den typen av input-typ?

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Detta attribut kan inte skriva till, vare sig med javascript eller genom att sätta attributet explicit, och det är helt och hållet per säkerhetsdesign (vilket är helt logiskt om du tänker på det)

[inlägget ändrat 2008-03-09 20:47:57 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Jag förstår absolut att det säkerhetsmässigt inte funkar, jag bara visste inte om det och var sugen på att göra mitt formulär användarvänligt. Läste inte tillräckligt noga om input-taggens attribut helt enkelt...

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
Det lär gå att sätta filnamnet i Opera, men då måste användaren bekräfta att hon verkligen vill skicka den filen:

Väldigt illa i mina ögon. Jag anser inte att man ska implementera detta bara för att det föreslås i ett så gammalt dokument som RFC1867 (som refererades som uppenbar orsak till denna implementation som jag förstod det).

 

Är det något vi lärt oss de senaste åren (något som man absolut inte kunde förutse för tretton år sen (när detta dokument skrevs) så är det just hur dumma och/eller oförsiktiga användare i så många fall är. Titta bara på alla problem folk får med virus på MSN trots alla varningar i media. Titta på all spyware som folk får in för att de klickar bort alertrutor på webbsidor utan att ens läsa vad som står däri.

 

Tror man på fullaste allvar att en bekräftelseruta skulle utgöra något som helst säkerhetsskydd för användaren så lever man inte i nuet. Den minimala bekvämlighet som denna implementation ger för de fåtal fall där den kan tänkas vara till "nytta" uppväger inte på långa vägar säkerhetsriskerna. Stor fadäs av norrmännen som i övrigt gjort en väldigt bra webbläsare.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...