Avatar billede mikkeljans Nybegynder
01. april 2005 - 11:27 Der er 28 kommentarer og
2 løsninger

Upload af Billedere

Jeg har en "File Form" hvor brugeren kan vælge et billede fra harddisken.. Nu skal jeg bare gennem ASP programmere siden til at automatisk upload det valgte billede i en mappe på serveren.. Hvordan gør man det?
Avatar billede busschou Praktikant
01. april 2005 - 11:40 #1
hvor har du webhotel?...har du adgang til fx komponenten aspSmartUpload?
For det er nemmest hvis du har adgang til en eller anden form for komponent
Avatar billede milandt Nybegynder
01. april 2005 - 11:42 #2
Du kan evt hente en evaluation copy og installere den på din egen IIS.
Avatar billede mikkeljans Nybegynder
01. april 2005 - 12:04 #3
Wannafind.dk.. Der står den understøtter ASP komponenter.. Hvordan bruger jeg det?
Avatar billede busschou Praktikant
01. april 2005 - 12:07 #4
http://www.aspsmart.com/aspSmartUpload/
Her kan du se eksempler på kode med aspSmartUpload
Avatar billede milandt Nybegynder
01. april 2005 - 12:08 #5
Avatar billede mikkeljans Nybegynder
01. april 2005 - 12:10 #6
Tak for hjælpen!
Avatar billede busschou Praktikant
01. april 2005 - 12:12 #7
milandt >> hvordan fandt du den? jeg forsøgte deres support men den var da godt nok kedelig for folk som ikke har domæne hos wannafind.dk
mikkeljans >> Når wannafind understøtter det så bør du kunne klare det med enten fra deres support sider eller evt fra aspsmarts hjemmesiden uden videre problemer vil jeg tro. Det er såmen rimelig simpelt :o)
Avatar billede busschou Praktikant
01. april 2005 - 12:12 #8
Så må du jo vælge hvad du bruger som støtte ;o)...
Avatar billede mikkeljans Nybegynder
01. april 2005 - 12:21 #9
Jeg forstår ikke helt hvordan de koder virker.. Skal jeg download et program før jeg kan bruge dem?.. Hvordan helt simpelt koder jeg med ASP til at upload en fil fra harddisk til en mappe på serveren?
Avatar billede busschou Praktikant
01. april 2005 - 12:24 #10
det kan ikke være mere simpelt end på det linkl jeg gav dig
Klik på linket... ude i venstre side vælger du code exampels mener jeg
Tag det første eksempel
Der er en html kode og en asp kode
Gem den ene i en html fil og den anden i en asp fil ...det virker lige som det er
Avatar billede busschou Praktikant
01. april 2005 - 12:24 #11
det eneste er selvfølgelig at du skal ændre stien i deres eksempel så du får gemt filerne i den mappe du ønsker :o)
Avatar billede busschou Praktikant
01. april 2005 - 12:28 #12
filen "upload.html"
-------------------
<HTML>
<BODY BGCOLOR="white">

<H1>aspSmartUpload : Sample 1</H1>
<HR>

<FORM METHOD="POST" ACTION="upload.asp" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
  <INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
  <INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>
  <INPUT TYPE="FILE" NAME="FILE4" SIZE="50"><BR>
  <INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>

</BODY>
</HTML>
---------------------
filen "upload.asp"
--------------------
<HTML>
<BODY BGCOLOR="white">

<H1>aspSmartUpload : Sample 1</H1>
<HR>

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim intCount
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  Save the files with their original names in a virtual path of the web server
'  ****************************************************************************
  intCount = mySmartUpload.Save("MIN_MAPPE")
  ' sample with a physical path
  ' intCount = mySmartUpload.Save("c:\temp\")

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.")
%>
</BODY>
</HTML>
-------------------------
Sådan
Avatar billede mikkeljans Nybegynder
01. april 2005 - 12:28 #13
I eksemplet:

'  Variables
'  *********
  Dim mySmartUpload
  Dim intCount
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload

'  Save the files with their original names in a virtual path of the web server
'  ****************************************************************************
  intCount = mySmartUpload.Save("/aspSmartUpload/Upload")
  ' sample with a physical path
  ' intCount = mySmartUpload.Save("c:\temp\")

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(s) uploaded.")

Er der ikke et eneste sted i koden hvor en fil bliver defineret.. Kun nogen mapper.
Avatar billede milandt Nybegynder
01. april 2005 - 12:31 #14
busschou < bare vælg at du har domæne hos wannafind, og så skal du indtaste et domæne som wannafind hoster.. jeg prøvede mig frem med "wannafind.dk"
Avatar billede milandt Nybegynder
01. april 2005 - 12:33 #15
mikkeljans < du skal ikke downloade noget for at det skal virke. Det er et komponent som skal installeres på webserveren, men Wannafind yder den service at de allerede har købt og betalt for dette komponent og installeret det så deres kunder kan bruge det.

Var det din egen web-server du havde stående fx hjemme hos dig selv skulle du downloade og betale for komponentet som du skulle installere på web-serveren.
Avatar billede busschou Praktikant
01. april 2005 - 12:33 #16
ok my bad den gemmer dem så ikke tæller kun i eksemplet åbenbart
men du kan bruge denne i stedet for dens optælling:
For each file In mySmartUpload.Files
If not file.IsMissing Then
file.SaveAs("STIEN TIL FILEN")
End If
--------------
Avatar billede busschou Praktikant
01. april 2005 - 12:34 #17
den finder du i deres 2. eksempel
Avatar billede busschou Praktikant
01. april 2005 - 12:35 #18
som er:
<HTML>
<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

'  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("/aspSmartUpload/Upload/" & file.FileName)
        ' sample with a physical path
        ' file.SaveAs("c:\temp\" & 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>
Avatar billede mikkeljans Nybegynder
01. april 2005 - 12:37 #19
Kan ikke rigtig forstå hvorfor koden skal være så besværlig.. Man burde da bare kunne angive en sti på harddisken og en sti på serveren?
Avatar billede busschou Praktikant
01. april 2005 - 12:41 #20
hmm jeg kender kun til aspSmartUpload...og ikke andre komponenter.
Synes ikke det er såå besværligt. Formen i html giver jo sig selv
Koden i asp sikrer jo mimetyper med mere for at filen opfattes som den rigtige type
De eksempler jeg har set uden komponenter er meget meget værre
Avatar billede mikkeljans Nybegynder
01. april 2005 - 12:42 #21
Ved den her kode er det da også kun stien på serveren der bliver opgivet? Kan ikke se hvor stien til filen der skal uploades er.
Avatar billede milandt Nybegynder
01. april 2005 - 12:42 #23
ovenstående kode kunne også koges lidt ned.


  For each file In mySmartUpload.Files
    If not file.IsMissing Then
          file.SaveAs("/aspSmartUpload/Upload/" & file.FileName)
      End If
  Next

  Response.Write("<BR>" & mySmartUpload.Files.Count & " files could be uploaded.<BR>")
Avatar billede busschou Praktikant
01. april 2005 - 12:43 #24
her
file.SaveAs("/aspSmartUpload/Upload/" & file.FileName)
det er både sti og navn
hvis du tænker på hvor filen kommer fra lokalt ja så er det jo gemt i formen
Avatar billede milandt Nybegynder
01. april 2005 - 12:43 #25
Du angiver din sti på harddisken her:

<FORM METHOD="POST" ACTION="upload.asp" ENCTYPE="multipart/form-data">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
  <INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>

Altså ikke i koden, men ved at bruge formen.
Avatar billede busschou Praktikant
01. april 2005 - 12:44 #26
ja klart klart alle response write kan jo tages af :o)
Avatar billede busschou Praktikant
01. april 2005 - 12:45 #27
nu er der vist en del dobbeltkonfekt eller hvad det hedder....så lader milandt overtage er nok bedst :o)... men lægger et svar i tilfælde af du vælger bruge noget af det jeg har skrevet
Avatar billede mikkeljans Nybegynder
01. april 2005 - 12:48 #28
Jeg har 3 forms, der skal uploades 3 billedere til 3 forskellige mapper på serveren.. Her skal programmet kende forskel på dem.
Avatar billede milandt Nybegynder
01. april 2005 - 13:01 #29
i stedet for

  For each file In mySmartUpload.Files
    If not file.IsMissing Then
          file.SaveAs("/aspSmartUpload/Upload/" & file.FileName)
      End If
  Next

så gør sådan:

  i = 0   
  For each file In mySmartUpload.Files
    i = i + 1
    If not file.IsMissing Then
      file.SaveAs(Upload.Form(i).value & file.FileName)
    End If
  Next

formen kunne se sådan ud:

<FORM METHOD="POST" ACTION="upload.asp" ENCTYPE="multipart/form-data">
  <INPUT TYPE="HIDDEN" NAME="PATH1" VAULE="upload\folder1\">
  <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
  <INPUT TYPE="HIDDEN" NAME="PATH2" VAULE="upload\folder2\">
  <INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
  <INPUT TYPE="HIDDEN" NAME="PATH3" VAULE="upload\folder3\">
  <INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>
  <INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>
Avatar billede milandt Nybegynder
01. april 2005 - 13:08 #30
hvis du angiver stien som jeg har gjort skal du lige huske at gøre sådan når du gemmer filerne:

file.SaveAs(Server.MapPath(".") & "\" & Upload.Form(i).value & file.FileName)
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