Avatar billede madeindk Nybegynder
06. august 2005 - 02:55 Der er 33 kommentarer og
1 løsning

aspUpload - Hvad skal filen hedde?

Hej eksperter!
Jeg kunne godt tænke mig at vide hvordan man bestemmer hvad den originale fil skal hedde når den bliver gemt på serveren.

Jeg har fundet ud af hvordan man bestemmer hvad thumb skal hedde.

<%
    ' Create an instance of AspUpload object
    Set Upload = Server.CreateObject("Persits.Upload")

    ' Compute path to save uploaded files to
    Path = Server.MapPath("/DataWestside/profilbilleder/")


    ' Capture uploaded file. Save returns the number of files uploaded
    Count = Upload.Save(Path)

    If Count = 0 Then
        Response.Write "No images selected. <A HREF=""03_form.asp"">Try again</A>."
        Response.End
    Else

        ' Obtain File object representing uploaded file
        Set File = Upload.Files(1)

        ' Is this a valid image file?
        If File.ImageType <> "UNKNOWN" Then

            ' create instance of AspJpeg object
            Set jpeg = Server.CreateObject("Persits.Jpeg")
           
            ' open uploaded file
            jpeg.Open( File.Path )

            ' resize image accoring to "scale" option.
            ' notice that we cannot use Request.Form, so we use Upload.Form instead.
            jpeg.Width = jpeg.OriginalWidth * Upload.Form("scale") / 100
            jpeg.Height = jpeg.OriginalHeight * Upload.Form("scale") / 100

            SavePath = Path & "\small_" & Session("id")

            ' AspJpeg always generates JPEG thumbnails regardless of original format.
            ' If the original file was not a JPEG, append .JPG extension.
            If UCase(Right(SavePath, 3)) <> "JPG" Then
                SavePath = SavePath & ".jpg"
            End If

            jpeg.Save SavePath
Avatar billede busschou Praktikant
06. august 2005 - 08:32 #1
http://www.aspupload.com/Manual.htm
her er der en del eksempler, vist også med Copy
Avatar billede madeindk Nybegynder
06. august 2005 - 12:42 #2
Ok , der er ikke nogen der kan komme med et mere konkret svar?
Avatar billede busschou Praktikant
06. august 2005 - 12:45 #3
i det link jeg gav der er der jo netop et eksempel?
--------
Moving, Copying, Renaming and Deleting Files

      The UploadedFile object provides methods that enables you to move, copy or delete uploaded files. These methods are
     
            file.Move( NewName As String )
            file.Copy( NewLocation As String, Optional Overwrite)
            file.Delete


      Depending on the NewName argument, the Move method will either move the file to another directory or rename it. Suppose the file abc.txt has been uploaded to the directory c:\Upload. Then the call

      file.Move "c:\WINNT\abc.txt" will move the file to the directory c:\WINNT, whereas the call
      file.Move "c:\Upload\xyz.txt" will simply rename the file.

      It's important to know that the Move method has a side effect: once this method is successfully called, the Path property of this file object will point to the new location/name.

      The Copy method copies the file to a new location/name. NewLocation must be a fully qualified path. The Overwrite parameter, if set to True or omitted, instructs the Copy method to overwrite an existing file at the new location. If set to False, it will cause the method to fail should a file at the new location already exist. Unlike Move, this method does not affect the Path property.

      You may choose to use the Delete method if, for example, you are saving the file in the database as a blob and no longer need it in your upload directory. Saving files in the database is our next topic.

      The usage of the methods File.Copy and File.Delete to rename uploaded files is demonstrated in the code sample UploadScript10.asp. An alternative approach to file renaming using the method File.SaveAs (new in AspUpload 2.0) is demonstrated in UploadScript11.asp.
Avatar billede madeindk Nybegynder
06. august 2005 - 12:47 #4
Jeg skal ikke kopiere en fil?

Jeg skal bare angive hvad den originale fil skal hedde når den bliver smidt på serveren i stedet for den hedder det den uploadede fil hedder.
Avatar billede busschou Praktikant
06. august 2005 - 12:48 #5
Avatar billede busschou Praktikant
06. august 2005 - 12:49 #6
naarrjj  ;o)
Men hvis du læser hvad der står så vil file.Move enten kopiere eller rename afhængig af om du vælger den samme mappe eller en anden!
Der står også du kan benytte File.SaveAs
Avatar billede busschou Praktikant
06. august 2005 - 12:49 #7
hedder overskriften ikke renaming måske ? ;o)
Avatar billede busschou Praktikant
06. august 2005 - 12:51 #8
For Each File in Upload.Files
  File.SaveAs("dit_filnavn"
Next
sådan
Avatar billede busschou Praktikant
06. august 2005 - 12:52 #9
hvis din form kun kan uploade en fil ad gangen så er det nok nemmeste :o)
Hvis der kan være flere så skal de jo selvfølgelig ikke allesammen omdøbes til det samme
Avatar billede madeindk Nybegynder
06. august 2005 - 13:03 #10
Hvis jeg vælger File.SaveAs kommer den med fejl omkring et object.
Avatar billede busschou Praktikant
06. august 2005 - 13:06 #11
i følge dokumentationen står der at SaveAs er nyt i version 2.0
Måske det er derfor
Som beskrevet ovenfor i citatet fra dokumentationen burde du også kunne benytte File.Move hvis du flytter den til samme mappe vil den ikke flyttes men omdøbes står der
altså
---
For Each File in Upload.Files
  File.Move("c:\Upload\mappe_hvor_der_uploades\nytnavn.jpg")
Next
Avatar billede madeindk Nybegynder
06. august 2005 - 13:16 #12
Den kan kun uploade en fil af gangen!
Jeg fatter intet af denne her kode :(
Avatar billede madeindk Nybegynder
06. august 2005 - 13:16 #13
Set Upload = Server.CreateObject("Persits.Upload")

' Use AspJpeg to resize image
Set Jpeg = Server.CreateObject("Persits.Jpeg")

' Capture and save uploaded image to the same directory as script
Upload.Save Server.MapPath("/DataWestside/profilbilleder/")

For Each File in Upload.Files
    If File.ImageType <> "JPG" Then
        Response.Write "This is now a JPGE image."
        File.Delete
        Response.End
    End If

    Jpeg.Open File.Path

    Scale = Upload.Form("Scale")
    Jpeg.Width = Jpeg.OriginalWidth * Scale / 100
    Jpeg.Height = Jpeg.OriginalHeight * Scale / 100

    Response.Write Jpeg.OriginalHeight & "-" & Jpeg.Height

    Jpeg.Save Server.MapPath(".") & "\small_" & File.FileName
Avatar billede busschou Praktikant
06. august 2005 - 13:21 #14
jeg har desværre ikke speciel forstnd på JPeg delen
Men den må der altså også stå noget om i manualen som er her
http://www.aspjpeg.com/manual.html
Men jeg kan nok desværre ikke stykke den del sammen for dig uden selv at læse manualen
Og så er det jo nemmere du selv gør det
Det eneste jeg ved er at der er de to metoder til at rename en fil på og det skal du gøre istedet for der hvor du  har din "Count = Upload.Save(Path)" for det er der den gemmer den som det er nu
Avatar billede madeindk Nybegynder
06. august 2005 - 13:38 #15
I count tæller dne hvor mange filer jeg ønsker at uploade :)

Men det er ret træls at man ikke bare kan skrive et sted hvad filen skal hedde ligesom længere nede hvor man laver den der thumb...
Avatar billede busschou Praktikant
06. august 2005 - 13:43 #16
Jep men den uploader samtidig med at den tæller
Upload.Save(Path) betyder jo at den gemmer :o)
Så derfor ville det nemmeste være hvis du kunne sige
Count = Upload.SaveAs("nytnavn")
Istedet for, men det lader det jo desværre ikke til du kan
Avatar billede madeindk Nybegynder
06. august 2005 - 13:45 #17
KODEN:

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

' Use AspJpeg to resize image
Set Jpeg = Server.CreateObject("Persits.Jpeg")

' Capture and save uploaded image to the same directory as script
Upload.Save Server.MapPath("/DataWestside/test/")

Count = Upload.Save(test)

FEJLEN:

Persits.Upload.1 error '800a003e'

Save method must not be called more than once.

/brugere/edit_info/edit_profilepic.asp, line 14
Avatar billede busschou Praktikant
06. august 2005 - 13:48 #18
den siger vist sig selv den fejlmedelelse :o)
Du må kun kalde save een gang
Avatar billede madeindk Nybegynder
06. august 2005 - 13:49 #19
Hvor kalder jeg den mere?
Avatar billede busschou Praktikant
06. august 2005 - 14:11 #20
i den kode du skrev 13:45:38
Der har du den stående to gange
1) Upload.Save Server.MapPath("/DataWestside/test/")
2) Count = Upload.Save(test)
Avatar billede madeindk Nybegynder
07. august 2005 - 14:24 #21
Ok. Kan du evt hjælpe med at rette det?
Avatar billede busschou Praktikant
07. august 2005 - 14:30 #22
jeg har som sagt ikke specielt tjek på det med billede behandlingen!
Desuden kan jeg ikke helt lure hvordan kode ser ud lige nu
Men hvis du ikke har behov for at få at vide hvor mange filer der er uploadet, eller dvs hvis du kun uploader een ad gangen, så kan du jo bare fjerne den som skulle have talt det :o), altså den linje med count
Avatar billede madeindk Nybegynder
07. august 2005 - 14:33 #23
Ok.
Det er jo det, det tænkte jeg også.

Der skal kun smides en fil op ad gangen, så den fjerner jeg :)
Avatar billede madeindk Nybegynder
07. august 2005 - 15:18 #24
Men så har du altså ikke andre forslag?
Avatar billede busschou Praktikant
07. august 2005 - 15:26 #25
ikke umiddelbart end det jeg er kommet med
Avatar billede madeindk Nybegynder
07. august 2005 - 15:31 #26
Ok.
Øv :(

Du har ikke selv et script liggende?
Avatar billede busschou Praktikant
07. august 2005 - 15:46 #27
nej desværre ikke til Persits
Avatar billede madeindk Nybegynder
07. august 2005 - 16:08 #28
Ok.
Til hvad så?
Avatar billede busschou Praktikant
07. august 2005 - 16:12 #29
aspsmartupload har gode eksempler
http://www.aspsmart.com/aspSmartUpload/
og der siger man også bare SaveAs
Men det kræver jo at det er indstalleret :o)
Avatar billede madeindk Nybegynder
07. august 2005 - 16:13 #30
Det kender jeg godt.
Men det kan ikke lave thumbs?
Avatar billede busschou Praktikant
07. august 2005 - 16:17 #31
nej men du benytter jo heller ikke upload komponenten til at lave thumbs med
Der benytter du jo Server.CreateObject("Persits.Jpeg") hvilket laver et helt andet objekt
Det eneste din billede komponent kræver er jo filen, og så er den vist ligeglad med hvor filen kommer fra, bare den er der :o)
Avatar billede madeindk Nybegynder
07. august 2005 - 16:27 #32
Hmm ja, men det første billede som er stort skal jo også hedde noget forsvarligt så den ikke kommer til at hedde fx. http://data.westside.dk/fester/Billede%%afmig%%.jpg :o)
Avatar billede busschou Praktikant
07. august 2005 - 16:38 #33
Du kan sagtens benytte aspsmartupload
Tag deres eksempel
http://www.aspsmart.com/scripts/aspSmartUpload/publigen/content/templates/show.asp?P=353&L=EN
Det kan du bruge direkte (evt slette diverse udskrifter)
Inden i For løkken har du så adgang til "file"
Den laver en file.SaveAs
fint så har du ømdøbt dit billede
Derefter stadig inde i for løkken laver du så det du selv har med JPEG og thums
Den har du jo selv skrevet bruger jpeg.Open( File.Path )
I aspsmartupload hedder det så
file.FilePathName istedet
Avatar billede madeindk Nybegynder
06. juli 2006 - 18:20 #34
Lukker - fandt en anden løsning på problemet.
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