Avatar billede roadi Nybegynder
18. november 2003 - 17:36 Der er 24 kommentarer og
1 løsning

Fil i form?

Hej Eksperter!

Jeg har et lille problem, som jeg håber at i kan hjælpe mig med.

Jeg er ved at lave en upload funktion, hvor jeg har behov for at kunne sende et filnavn til en <input type="file">

Kan dette lade sige gøre, jeg har forsøgt med <input type="file" name="file1" value="<%=request.form("test")%>">

Men den viser ikke noget i fil feltet?

Hvorfor? dette og er der en måde at løse det på??

/Roadi
Avatar billede cool_casper Nybegynder
18. november 2003 - 17:58 #1
Du skal bruge en upload kombonent på din server. Spørg evt. du webhotel-udbyder hvilke komponeter der inst. for serveren.

Bagefter vil jeg anbefale dig at læse dem der har udviklet komponenten's side igennem. Der kan du se hvordan du laver upload og det har tit også eksempler på hvordan det kan gøres..

Men start med at finde ud af hvilken upload-komponent du har og evt. om der overhovedet findes en på serveren..
Avatar billede roadi Nybegynder
18. november 2003 - 18:06 #2
Det er smartupload der ligger på serveren, som jeg selv administrerer!

Det kan godt være at jeg ikke helt har gjort spørgsmålet klart. Så jeg prøver lige igen..

Jeg vil gerne lave en funktion som nemt kan uploade et sted ml. 1 & 10 filer ad gangen, jeg syntes det kunne være fedt at gøre det ved hjælp af at man tilføjer fil og sti navne til et textarea der er komma sepereret(har jeg løst) derefter skal den så selv finde ud af hvormange filer der er og putte dem ind i <input type="file" name="file1 osv. (Delvist løst.)

Jeg mangler nemlig at kunne indsætte en value i et file felt.. Det kan ikke umildebart lade sig gøre eller også gør jeg noget forkert.

Jeg har et array, som fint splitter den lange , streng til enkelte strenge, og opretter også input boxene, men den kan blot ikke ligge values ind i dem af mystiske årsager også selv om jeg bruger value=.....

Jeg håber at det måske forklarer det bedre..

/Roadi
Avatar billede cool_casper Nybegynder
18. november 2003 - 18:37 #3
Hm.. det jo lidt noget andet. Det lyder indviklet og kræver at du nok kigger reference-siderne i gennem på smartUpload-hjemmesiden.
Du kan evt. se dette eks. http://www.directuplink.com/smartupload_script_sample.asp
Avatar billede deeflate Nybegynder
18. november 2003 - 22:14 #4
Her er en lille work-around baseret på http://www.eksperten.dk/spm/322503

<form name="formnavn" onSubmit="this.filFelt.disabled = true; return true;">
<input type="file" name="filFelt" onChange="this.form.vistFelt.value = this.value;" style="visibility: hidden;"><br>
<input class="felt" type="text" name="vistFelt" value="stien">
<input type="button" value="browse" onclick="this.form.filFelt.click();"><br><br>
<input type="submit" class="knap" value="Gem animation">
</form>

Her ligger default teksten i et tekstfelt, og dennes value kan du altså sette.
Avatar billede deeflate Nybegynder
18. november 2003 - 22:15 #5
Heh - gem animation? Det skulle vist lige have været rettet... :)
Avatar billede deeflate Nybegynder
18. november 2003 - 22:21 #6
Denne her, fra http://www.eksperten.dk/spm/317756, kunne endda være endnu mere yndig...

<form>
    <input type="file" name="fileUpl" id="fileUpl"
        style="display:none" onchange="this.form.txt.value=this.value;">
    <input type="text" name="txt">
    <button onclick="this.form.fileUpl.click();">Gennemse</button>
    <br><br>
    <button type="submit">Send</button>
</form>
Avatar billede deeflate Nybegynder
18. november 2003 - 22:32 #7
I dit tilfælde vil den så skulle ende med at se ud i retning af det her:

<form>
    <input type="file" name="fileUpl1" id="fileUpl1"
        style="display:none" onchange="this.form.txt1.value=this.value;">
    <input type="text" name="txt1" value="første fil">
    <button onclick="this.form.fileUpl1.click();">Gennemse</button>
    <br><br>

    <input type="file" name="fileUpl2" id="fileUpl2"
        style="display:none" onchange="this.form.txt2.value=this.value;">
    <input type="text" name="txt2" value="anden fil">
    <button onclick="this.form.fileUpl2.click();">Gennemse</button>
    <br><br>

    osv.

    <br><br>

    <button type="submit">Send</button>
</form>

Hvor du selvfølgelig styrer values på textfelterne, som du ellers ville gøre.
Avatar billede deeflate Nybegynder
18. november 2003 - 22:37 #8
Skift lige

<button type="submit">Send</button>

til

<input type="submit" value="Send">

...
Avatar billede roadi Nybegynder
19. november 2003 - 18:16 #9
deeflate -> Jeg kan ikke helt få det til at virke.

Prøv evt. at gå ind på http://jegkanselv.dk/scripts/moveval/

Den ligger stadigvæk ikke filen ind i formen korrekt..

Koden til process.asp er her:

<%
    Dim MyString, MyArray
    MyString = Split(Request.Form("test"), ",", -1, 1)

        Response.Write "<form action=sample02.asp method=POST ENCTYPE=multipart/form-data>"
       
                Response.Write "Du har valgt at uploade flg. filer<br>"           
       
        fcount = 1
   
    for i = 0 to Ubound(MyString)
       
   
        Response.Write "<input type='file' name='file" & fcount & "' id='file" & fcount & "'  ><br>"
        Response.Write "<input type='text' name='txt" & fcount & "' value='" & (MyString(i)) & "'><br>"
        Response.write "<button onclick=this.form.file" & fcount & ".click();>Gennemse</button>"
           

            ftot = fcount
        fcount = fcount + 1
       
    next
   
        Response.Write "<input type='submit' value='Upload " & ftot & " filer'>"
        Response.Write "</form>"
       
%>
Avatar billede deeflate Nybegynder
19. november 2003 - 21:13 #10
Du manglede også lige en linie.
Prøv:

<%
    Dim MyString, MyArray
    MyString = Split(Request.Form("test"), ",", -1, 1)

        Response.Write "<form action=sample02.asp method=POST ENCTYPE=multipart/form-data>"
       
                Response.Write "Du har valgt at uploade flg. filer<br>"           
       
        fcount = 1
   
    for i = 0 to Ubound(MyString)
       
   
        Response.Write "<input type='file' name='file" & fcount & "' id='file" & fcount
        Response.Write "' style='display:none' onchange='this.form.txt" & fcount & ".value=this.value;'><br>"
        Response.Write "<input type='text' name='txt" & fcount & "' value='" & (MyString(i)) & "'><br>"
        Response.write "<button onclick=this.form.file" & fcount & ".click();>Gennemse</button>"
           

            ftot = fcount
        fcount = fcount + 1
       
    next
   
        Response.Write "<input type='submit' value='Upload " & ftot & " filer'>"
        Response.Write "</form>"
       
%>
Avatar billede roadi Nybegynder
19. november 2003 - 22:02 #11
Det virker stadigvæk ikke...
Avatar billede deeflate Nybegynder
19. november 2003 - 22:16 #12
Det ser da ud til at virke fint...
Når jeg vælger x antal filer på den første side, bliver de fint overført til næste side og står i felterne.
Var det ikke det, det skulle?

Når du så skal hente værdierne, så skal du hente værdien fra text-felterne og ikke file-felterne.
Selve file-feltet kommer der nemlig kun en value i, hvis man gennemser og vælger en fil.
Det er vist, nok af sikkerhedsmæssige årsager, ikke muligt at ændre value på et file-felt via JavaScript - derfor denne work-around.
Det eneste dette script gør, er altså at give et almindeligt felt browse-funktionalitet, således at det virker som et file-felt.
Avatar billede roadi Nybegynder
20. november 2003 - 09:22 #13
okey, så må jeg lige se om jeg kan få sample02.asp til at acceptere filerne..
Avatar billede roadi Nybegynder
20. november 2003 - 20:42 #14
Hmm.. Jeg kan simpelhen ikke få sample2.asp til at godtage filerne...

Her er sample2.asp


------------------------Klip---------------------------------------



<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2800.1226" name=GENERATOR></HEAD>
<BODY bgColor=white>
<H1>aspSmartUpload : Sample 2</H1>
<HR>
<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim intCount
  intCount=0
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload
        'yesas = mySmartUpload.form("test")
'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  **************************************************************************
        file.SaveAs("/upload/" & file.FileName)
        ' sample with a physical path
        ' file.SaveAs("d:\sites\graficom\jegkanselv.dk\scripts\moveval\upload\" & file.FileName)

      '  Display the properties of the current file
      '  ******************************************
        Response.Write("Name = " & file.Name & "<BR>")
        Response.Write("Size = " & file.Size & "<BR>")
        Response.Write("FileName = " & file.FileName & "<BR>")
        Response.Write("FileExt = " & file.FileExt & "<BR>")
        Response.Write("FilePathName = " & file.FilePathName & "<BR>")
        Response.Write("ContentType = " & file.ContentType & "<BR>")
        Response.Write("ContentDisp = " & file.ContentDisp & "<BR>")
        Response.Write("TypeMIME = " & file.TypeMIME & "<BR>")
        Response.Write("SubTypeMIME = " & file.SubTypeMIME & "<BR>")
        intCount = intCount + 1
      End If
  Next

'  Display the number of files which could be uploaded
'  ***************************************************
  Response.Write("<BR>" & mySmartUpload.Files.Count & " files could be uploaded.<BR>")

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.<BR>")
%></BODY></HTML>
-------------------------------Klip---------------------------------------

/Roadi
Avatar billede erikjacobsen Ekspert
20. november 2003 - 20:47 #15
Jeg kan ikke helt se i spørgsmålet om du forsøger at omgå "browse"
måden, og selv forsøger at putte filnavne ind i et <input type="file">, for
det kan man ikke (li'som i: umuligt).
Avatar billede deeflate Nybegynder
20. november 2003 - 21:08 #16
erikjakobsen > Ja, det er jo lige netop det :)

roadi > Jeg kender ikke rigtigt smartUpload...
Men du skal jo ligesom have informeret det om, hvor den skal hente filnavnene fra. Altså have fortalt den, at den skal bruge information fra dine tekstfelter, og ikke fra dine file-felter.
Avatar billede erikjacobsen Ekspert
20. november 2003 - 21:11 #17
smartUpload kan ikke hente filer nogetstedsfra, hvis den bare har filnavne
i tekstfelter. Det er der ingen der kan (længere --- der var nogle sjove
fejl i visse browsere *g*)
Avatar billede roadi Nybegynder
20. november 2003 - 21:28 #18
Erikjacobsen, dvs. at det jeg spørger kan rent faktisk ikke lade sige gøre?
Avatar billede erikjacobsen Ekspert
20. november 2003 - 21:35 #19
Kun hvis jeg forstår dig korrekt - det er jeg ikke sikker på.
Jeg gentager blot 19/11-2003 22:16:21
Avatar billede roadi Nybegynder
20. november 2003 - 21:44 #20
Det tyder det på at at du gør..

Kort fortalt.

Det jeg gerne vil er

1. lave en upload funktion som kan håndtere upload af flere filer på engang.
Dvs. man tilføjer først de ønskede filer, derefter trykke man på upload hvorefter den går i gang med at sende filerne.

2. Jeg vil gerne lave et pænere design end en side med eks. 10 <input type=file boxe>

Men for at smartupload kan håndtere filerne korrekt skal de komme fra en <input type file.>

Men da jeg ikke kan få lov til at indsætte værdien i en <input type=file>, ja så kan jeg ikke lave en fuktion som selv tilføjer det valgte antal input type=file, funktion. så derfor kan dette projekt ikke lade sig gøre, har jeg ret????
Avatar billede erikjacobsen Ekspert
20. november 2003 - 21:59 #21
ja
Avatar billede roadi Nybegynder
21. november 2003 - 10:57 #22
Når men så lukker jeg tråden, da det desværre ikke kan lade sig gøre...

Jeg takker for alle input'sne, men jeg kan jo ikke give point for noget som ikke er blevet løst.


Endnu engang tak for jeres hjælp, selvom det ikke førte til det rigtige..

/ROADI
Avatar billede roadi Nybegynder
21. november 2003 - 10:58 #23
Ja, jeg fik så lige trykket forkert, så pointene blev givet alligevel...

----LUKKER----
Avatar billede deeflate Nybegynder
21. november 2003 - 12:54 #24
Så afviser du bare mit svar på http://www.eksperten.dk/spm/428670, så går det op :)
Avatar billede roadi Nybegynder
21. november 2003 - 12:56 #25
Done...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester