Avatar billede jannikf Nybegynder
30. december 2006 - 04:18 Der er 7 kommentarer og
1 løsning

Aspupload filtype sortering

Jeg sidder her med aspupload og ønsker i den forbindelse at den selv kan finde filtypenavnet eks. .gif, .png, .txt, og så efterfølgende ændre den folder hvori filen skal hen.

Hvis filen f.eks. er en .gif skal den ligge i upload/image/, .txt i upload/documents/, osv.

Jeg forestiller mig at det egentligt er ligetil idet jeg egentlig bare skal "extracte" filnavnet fra min type="file" og så splitte ved punktum.
Eks:
C:\billede.jpg --> jpg

Men hvordan i alverden får jeg data fra <input type="file" id="inputfile" name="file"> ind så jeg kan ændre stien:
Server.MapPath("../../upload") til noget andet?

Jeg forestiller mig at der nok er en funktion i aspupload der kan hente filtypen, men den fungerer sikkert først efter selve uploaden og det går jo ikke.

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

Upload.OverwriteFiles = False
On Error Resume Next

Upload.SetMaxSize 1048576 ' Limit files to 1MB
Count = Upload.Save(Server.MapPath("../../upload"))

If Err <> 0 Then

Response.Redirect("../fil.asp?info=Filen er ikke uploadet")
Else
Response.Redirect("../fil.asp?info=Filen er uploadet")
End If


%>
Avatar billede keysersoze Guru
30. december 2006 - 10:21 #1
hvorfor mener du ikke det først fungerer efter upload?

If Upload.ImageType = "jpg" Then
  File.SaveAs Server.MapPath("../../upload" & Upload.FileName)
Else
  File.SaveAs Server.MapPath("../../andenmappe" & Upload.FileName)
End If
Avatar billede jannikf Nybegynder
30. december 2006 - 13:37 #2
Det virker ikke.
Jeg bruger Count = Upload.Save(Server.MapPath("../../upload")) til at uploade og selv hvis jeg erstatter File.SaveAs Server.MapPath("../../andenmappe" & Upload.FileName) med denne kommando får jeg stadig fejl.

If Upload.ImageType = "jpg" Then
  File.SaveAs Server.MapPath("../../upload/image/" & Upload.FileName)
Else
  File.SaveAs Server.MapPath("../../upload/" & Upload.FileName)
End If

Virker ikke

eller

If Upload.ImageType = "jpg" Then
Count = Upload.Save(Server.MapPath("../../upload/"))
Else
Count = Upload.Save(Server.MapPath("../../upload/file/"))
End If

Med denne metode bliver alt uploadet i ../../upload/,så jeg tror der er noget halt med Upload.ImageType.
Avatar billede keysersoze Guru
30. december 2006 - 16:45 #3
i stedet for File.SaveAs skal det i dit tilfælde hedder Upload.SaveAs fordi det er hvad dit objekt er instansieret som. Hvis ikke så må du komme med nogle fejlmeddelelser da det elelrs er umuligt at komme videre med.

hvis der er "noget" i vejen med ImageType må du prøve at finde ud af hvorfor - i stedet for fx bare at lave if-sætningen så udskriv variablen og lad os se hvad du får af værdier.
Avatar billede jannikf Nybegynder
30. december 2006 - 17:45 #4
Det hjælper desværre ikke.

Hvis jeg f.eks. bruger dette her:
Set Upload = Server.CreateObject("Persits.Upload")

Upload.OverwriteFiles = False
On Error Resume Next

Upload.SetMaxSize 1048576 ' Limit files to 1MB

Response.Write Upload.ImageType & "<br>"

Response.Write Err

Så bliver resultatet 438, som nok må være en fejlkode. Kan det tænkes at mit webhotel har fjernet visse funktioner? Hvis ja: jeg kan se at aspsmartupload også er installeret, så måske jeg skulle forsøge at benytte dette. Men hvad er så kommandoen for filtype i denne?
Avatar billede jannikf Nybegynder
30. december 2006 - 18:03 #5
Fandt en løsning:

Upload.SetMaxSize 3000000, True
Upload.Save

For Each File in Upload.Files
strFileName = File.FileName
strExt = Right(strFileName, Len(strFileName) - Instrrev(strFileName, "."))
Select Case strExt
  Case "jpg", "gif", "png"
        File.SaveAs Server.MapPath("../../upload/image/" & strFileName & "")
  Case "txt", "doc", "pdf"
        File.SaveAs Server.MapPath("../../upload/file/" & strFileName & "")
  Case else
      Response.Write "invalid file"
End Select
Next


Man skal åbenbart først lægge filen i memory og så efterfølgende bestemme hvor den skal gemmes. Ovennævnte eksempel fungerer som det skal i mit tilfælde.
Avatar billede keysersoze Guru
30. december 2006 - 18:31 #6
korrekt - med saveas skal filen lægges i memory. Alt dette foruden de øvrige funktioner kan du se på komponentens hjemmeside aspupload.com.

aspsmartupload fungerer lige så glimrende, men det projekt er lige lukket ned så det er begrænset hvad man efterhånden kan finde om det.
Avatar billede keysersoze Guru
09. februar 2007 - 23:41 #7
kommet videre?
Avatar billede jannikf Nybegynder
15. oktober 2007 - 20:13 #8
Ja, fandt en løsning som jeg har skrevet ovenover. Mange tak for hjælpen.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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