Avatar billede -ulli- Nybegynder
22. april 2002 - 11:32 Der er 9 kommentarer og
1 løsning

Upload

Hej

Jeg bruger Persits upload komponent.

I min upload form har jeg både text og fil input felter.

Eksempel fra Persits sample:

<%
    Set Upload = Server.CreateObject("Persits.Upload")

    ' Uncomment this line if unique file name generation is necessary
    ' Upload.OverwriteFiles = False

    ' We must call Upload.Save or SaveVirtual before we can use Upload.Form!
    Upload.Save "c:\upload"
%>

Der skriver man hvor man vil gemme filen før man kan hente noget fra eventuelle text felter i formen.

Det vil jeg ikke, da brugeren skal have mulighed for at bestemme hvilken uge han/hun uploader til. Dette uge nr skal også bruges til at oprette et bibliotek.

F.eks. har jeg et text felt i formen der hedder ugenr. Hvis denne er tom skal uge nr findes via DatePart("ww", date(), 2, 2) ...

lidt kode:

  if Upload.Form("ugenr") <> "" then
    year = DatePart("yyyy", date(), 2, 2)
    week = Upload.Form("ugenr")
  else
    dim year, week
    year = DatePart("yyyy", date(), 2, 2)
    week = DatePart("ww", date(), 2, 2)
  end if

Derefter opretter jeg bibliotek filerne skal uploades til:

Upload.CreateDirectory server.mappath("images\" & year & "\" & week), True

Og gemmer filerne
Count = Upload.SaveVirtual("images\" & year & "\" & week & "\")

og skriver hvor mange der er uppet

<%'=Count%> files uploaded.


Men..

Min Upload.Form("ugenr") ting fungerer ikke, da man skal skrive hvor filerne skal gemmes FØR man kan bruge Upload.Form() (f.eks.)...

Nogen der en ide til hvordan jeg kunne lave dette om?

Avatar billede cms Nybegynder
22. april 2002 - 11:36 #1
Hvis du stadig vil bruge denne komponent...
Så gemmer du først filen i et temp-bibliotek med et temp-navn, som du husker. Dernæst får du fat i form-variablene og kalkulerer ugenr samt biblioteket hvor filen skal ligge. Til sidst flytter du simpelthen filen hen i det bibliotek.
Avatar billede -ulli- Nybegynder
22. april 2002 - 11:37 #2
kan man flytte filer via komponenten?  Hvordan?
Avatar billede cms Nybegynder
22. april 2002 - 11:38 #3
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile(Server.MapPath("temp/" & TempFileName), Server.MapPath("uger/" & UgeNr & UploadFileName))
Avatar billede -ulli- Nybegynder
22. april 2002 - 11:54 #4
Jeg har f.eks.

TempFileName = c:\upload\P3160006.JPG

Hvad skal jeg skrive for at finde tekst efter sidste \\ i TempFileName .. så jeg kun får filnavnet..
Avatar billede -ulli- Nybegynder
22. april 2002 - 11:55 #5
eh.. bare sidste \
Avatar billede cms Nybegynder
22. april 2002 - 12:09 #6
så gør du bare sådan:

UploadFileName = Mid(TempFileName, InStrRev(TempFileName, "\")+1)

Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile(TempFileName, Server.MapPath("uger/" & UgeNr & "/" & UploadFileName))
Avatar billede -ulli- Nybegynder
22. april 2002 - 12:25 #7
Der kan ikke bruges parenteser ved kald af en Sub
Upload1.asp, line 40, column 96
fso.MoveFile(TempFileName, Server.MapPath("images/" & year & "/" & week & "/" & UploadFileName))

Kode:

For Each File in Upload.Files
TempFileName = File.Path
UploadFileName = Mid(TempFileName, InStrRev(TempFileName, "\")+1)
fso.MoveFile(TempFileName, Server.MapPath("images/" & year & "/" & week & "/" & UploadFileName))
Next
Avatar billede -ulli- Nybegynder
22. april 2002 - 12:28 #8
fso er created uden for for-løkken
Avatar billede -ulli- Nybegynder
22. april 2002 - 12:41 #9
Fandt fejlen :)
Tak for hjælpen
Avatar billede cms Nybegynder
22. april 2002 - 12:43 #10
sorry, var lige væk. så lidt :) tak for points
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