Avatar billede kovalt Nybegynder
01. juni 2006 - 00:27 Der er 13 kommentarer og
1 løsning

Submitte multipart/form-data-form fra popup

Hej

Jeg ved ikke lige om dette spørgsmål hører hjemme her eller under ASP - men nu prøver jeg her.

Jeg har en form af typen multipart/form-data, hvorfra jeg uploader nogle filer til min webserver.

Mit spørgsmål er om jeg fra en popup kan submitte denne form således at jeg på min action-side kan loope igennem de filer, der er angivet. Jeg kan pt. godt få siden submittet (med opener.document.formname.submit();) dog synes jeg ikke at jeg i ASP'en kan fange filerne fra formen.

Er der nogen af Jer som ved om man skal gøre noget specielt når man vil submitte en form af denne type fra JavaScript. Det kan også være man slette ikke kan?

Nogen der kan komme med en kommentar?

/Kovalt
Avatar billede fennec Nybegynder
01. juni 2006 - 08:52 #1
Der skulle ikke være noget specielt ved det. Hvordan "fanger" du filerne på ASP siden. Er det med et uploadkomponent??
Avatar billede kovalt Nybegynder
01. juni 2006 - 08:59 #2
jeps persits
Avatar billede fennec Nybegynder
01. juni 2006 - 09:07 #3
Nu har jeg lige nærlæst din beskrivelse, og jeg tror problemet ligger omkring "...at jeg på min action-side kan loope igennem de filer, der er angivet...". Denne linje kunne jeg godt tænke en forklaring på.

Er det fordi der er flere filer der skal uploades?? For det kan komponenten sagtens klare uden du skal til at sende flere forme afsted.
Avatar billede kovalt Nybegynder
01. juni 2006 - 09:17 #4
Jeg har en form, som indeholder en eller angivelser af filer.

Når brugeren trykker upload har jeg en popup som viser en progressbar på upload. Denne er lavet ud fra noget kode på denne side. http://asp-upload.borec.net/.

Så vidt jeg lige kan se i koden til progressBaren slår denne alle filerne sammen og uploader dem alle som et hele som binaryRead. Dette giver mig et problem idet jeg har behov for at skrive noget info omkring hver fil ned i en DB. Jeg bliver således nødt til at kunne loope igennem alle filer i stil med

set Upload = Server.CreateObject("Persits.Upload.1")
Upload.save
For Each File in Upload.Files
Avatar billede fennec Nybegynder
01. juni 2006 - 10:14 #5
Nu er jeg med. Du bruger Pure-ASP til at uploade med og ikke aspupload, hvorfor du ikke kan fange filerne i aspUpload. Du skal bruge de funktioner der er i Pure-ASP til at trække filnavne ud...

Jeg har kikke lidt på dokumentationen (som er meget rodet), men har ikke kunne finde en funktion til at trække de filnavne ud, men det er en så vigtig funktion, at den næsten må være der.

Det ligger nok et sted i ASPForm eller FormField klasserne, så det er dem jeg ville koncentrere mig om. Følger der ikke nogle eksempler på upload med?? Der må være et eks hvor de trækker filnavnet ud, eller som minimum nogle formfelter. Dem må du kunne bruge som base til at få fat i filnavne...
Avatar billede kovalt Nybegynder
01. juni 2006 - 10:19 #6
Vil det sige jeg skal have installeret pure-ASP på min webserver ligesom man installerer andre komponenter.
Avatar billede kovalt Nybegynder
01. juni 2006 - 10:22 #7
File Upload via ASP (Pure ASP Solution, no .DLL) - det lader det ikke til :-)
Avatar billede fennec Nybegynder
01. juni 2006 - 10:35 #8
Som du allerede har opdaget, så er det en ren ASP kode, som bare bliver inkluderet. Og du bruger den jo allerede :o)

Du skal bare finde den rigtige funktion, som kan trække filnavne ud. Som sagt må det ligge i ASPForm eller FormField.
Avatar billede kovalt Nybegynder
01. juni 2006 - 10:41 #9
I et af deres eksempler har de følgende:

Function FileStateInfo(Form)
  'enumerate uploaded fields.
  'and build report about its current state.
    On Error Resume Next
  Dim UpStateHTML, Field
    response.write "Her kommer den til"
  for each Field in Form.Files
    'Get field name
    UpStateHTML = UpStateHTML & "FieldName:" & Field.Name
   
    if Field.InProgress then
      'this field is in progress now.
      UpStateHTML = UpStateHTML & ", uploading: " & Field.FileName
    elseif Field.Length>0 then
      'This field was succefully uploaded.
      UpStateHTML = UpStateHTML & ", received: " & Field.FileName & ", " & FormatSize(Field.Length)
    end if
   
    UpStateHTML = UpStateHTML & "<br>"
  Next
    FileStateInfo = UpStateHTML
End Function

Jeg har også set en del dumps, hvor den viser en liste over de filer der er uploaded. Når jeg kører ovenstående sker der imidlertid intet
Avatar billede fennec Nybegynder
01. juni 2006 - 10:57 #10
Så skal jeg vist til at have hentet koden og afprøvet den.
Så må vi se om jeg kan finde ud af noget :o)

Der går lige lidt tid med det.

Loading...
Loading...
Loading...

(he he)
Avatar billede kovalt Nybegynder
01. juni 2006 - 11:10 #11
jeg tror jeg er ved at have den. Der følger nogle dll-filer med i det man downloader. De skal åbenbart ligge et specielt sted i forhold til den fil der laver progressbaren
Avatar billede fennec Nybegynder
01. juni 2006 - 17:02 #12
Jeg har desværre ikke haft tid til at kikke på koden endnu, men jeg skal nok prøve at huske det i morgen. Der er dog stor sandsynlighed for at jeg glemmer det, så smid en kommentar herinde i morgen, så jeg får en mail om det. Så er du sikker på at du ikke bliver glemt :o)

Og du må undskylde at jeg ikke gav dig besked tidligere, men jeg har haft meget om ørerne...
Avatar billede kovalt Nybegynder
01. juni 2006 - 17:04 #13
jeg har fået det løst så du skal ikke bruge mere tid på det.

Vil du have points?
Avatar billede fennec Nybegynder
02. juni 2006 - 08:42 #14
Jamen så vil jeg da ikke gøre mere ved det :o)

.o) <-- One Eyed Jack
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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