Avatar billede madeindk Nybegynder
20. november 2004 - 17:51 Der er 14 kommentarer og
3 løsninger

ASP Smart Upload - Fil størrelse og navn?

Hej EXP'er :P

Jeg bruger ASP smart upload, til at uploade billeder til min nystartet hjemmeside. Men der er bare INGEN begrænsninger på. Jeg vil gerne ha at mine brugere KUN kan uploade billeder der fylder omkring 300 kb og at billederne de upload kun må være JPG format! Nogen der evt. kan hjælpe?

<HTML>
<BODY BGCOLOR="white">

<!-- #include file = "meny.asp" -->

<H1>&nbsp;</H1>

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim oRs
  Dim intCount
  intCount=0
  Session.LCID = 1030     
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
 
  mySmartUpload.Upload
'  ******
  intCount = mySmartUpload.Save("D:\WWW\Sykonia\logind\portal\billeder\")                     

'  Connect to the DB
'  22:33 22-10-2004
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("Er vidst ligemeget!")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************
'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************

Upload.SetMaxSize 30, True
file.SaveAs "c:\123\" & file.FileName

filnavn = "http://portal.sykonia.dk/billeder/" & file.FileName

SQL = "UPDATE anv SET bild = '" & filnavn & "' WHERE ID  = '" & Session("id") & "'"
      oConn.Execute (SQL)

        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  response.Redirect "visprofil.asp"

'  Destruction
'  ***********

  oConn.Close

  Set oConn = Nothing
%>
</BODY>
</HTML>
Avatar billede hiks Nybegynder
20. november 2004 - 20:16 #1
hej

ja det kan vi nok godt klare:

... omkring her skal du indsætte

'  Upload
'  ******
 
  mySmartUpload.Upload
  mySmartUpload.AllowedFilesList = "jpeg,jpg"
  mySmartUpload.MaxFileSize = 300000 '300 kb. du kan også begrænse den samlede ved:
  mySmartUpload.TotalMaxFileSize = 1000000 'total uploade

/hiks
Avatar billede madeindk Nybegynder
20. november 2004 - 20:22 #2
Okay.. Kan du så også godt klare det med at den film man uploader ikke heddder det den hedder når man uploader, men at den for et nummer ( ID ) efter hvad nummer den er uploadet?
Avatar billede madeindk Nybegynder
20. november 2004 - 20:22 #3
fil - Skulle der selvfølgelig stå i stedet for film ;)
Avatar billede madeindk Nybegynder
20. november 2004 - 20:32 #4
Nu ser min kode sådan her ud.

<HTML>
<BODY BGCOLOR="white">

<!-- #include file = "meny.asp" -->

<H1>&nbsp;</H1>

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim oRs
  Dim intCount
  intCount=0
  Session.LCID = 1030     
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******

  mySmartUpload.Upload
  mySmartUpload.AllowedFilesList = "jpeg,jpg"
  mySmartUpload.MaxFileSize = 300000
 
  mySmartUpload.Upload
'  ******
  intCount = mySmartUpload.Save("D:\WWW\Sykonia\logind\portal\billeder\")                     

'  Connect to the DB
'  22:33 22-10-2004
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("databas/databas.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************
'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************


file.SaveAs "c:\123\" & file.FileName

filnavn = "http://portal.sykonia.dk/billeder/" & file.FileName

SQL = "UPDATE anv SET bild = '" & filnavn & "' WHERE ID  = '" & Session("id") & "'"
      oConn.Execute (SQL)

        intCount = intCount + 1
      End If
  Next

'  Display the number of files uploaded
'  ************************************
  response.Redirect "visprofil.asp"

'  Destruction
'  ***********

  oConn.Close

  Set oConn = Nothing
%>
</BODY>
</HTML>

Men nu kommer den med denne her fejl..

aspSmartUpload error '800a0009'

Subscript out of range

/upload.asp, line 29

Linie 29:  mySmartUpload.Upload
Avatar billede hiks Nybegynder
20. november 2004 - 20:36 #5
hva står der i linie 29?

/hiks
Avatar billede hiks Nybegynder
20. november 2004 - 20:42 #6
ang. dit filnavn så skal du have fat i en metode til at lave unikke navne eller navngive efter sessioner.

hvormange filer uploader du ad gangen?

/hiks
Avatar billede hiks Nybegynder
20. november 2004 - 20:57 #7
hvis du uploader flere filer ad gangen vil jeg foreslå dig at lave noget med sessionen og tidspunktet. Sådan at du laver en funktion der kan generere et filnavn:

Function Filnavn(extension)
  Dim tid
  Randomize

  tid = Now()
  tid = Replace(tid, "-", "") 'fjerner -
  tid = Replace(tid, ":", "") 'fjerner :
 
  Filnavn = Session.SessionID 'session id'et
  Filnavn = Filnavn & tid & CLng(Rnd * 100) & CLng(Rnd * 100)
  Filnavn = Filnavn & extension

End Function

Så vil jeg i linien:

file.SaveAs "c:\123\" & file.FileName

gøre sådan:

filename = Filnavn(file.FileExt)
file.SaveAs "c:\123\" & filename

- og så sidenhen huske det i databasen...

/hiks
Avatar billede madeindk Nybegynder
20. november 2004 - 22:07 #8
Jeg uploader kun 1 fil ad gangen.

I linie 29 står der: mySmartUpload.Upload !
Avatar billede hiks Nybegynder
20. november 2004 - 22:30 #9
du har også to af dem:

  mySmartUpload.Upload
  mySmartUpload.AllowedFilesList = "jpeg,jpg"
  mySmartUpload.MaxFileSize = 300000
 
  mySmartUpload.Upload

Du skal slette den øverste eventuelt...

/hiks
Avatar billede madeindk Nybegynder
21. november 2004 - 09:57 #10
Det ser ud til at virke. Hvordan får man den så til at sige, hvis man har uploadet en fil der er for stor fx.?
Avatar billede hiks Nybegynder
21. november 2004 - 10:26 #11
du kan evt før du begynder at uploade lave en

MAX_SIZE = 300000

If Request.Servervariables("CONTENT_LENGTH") > MAX_SIZE Then
    'fil for stor
Else
    'start din upload process
End if

ellers tror jeg du kan fange fejlkoden fra dit asp smart upload komponent nederst i din process

If Err > 0 then 'Fejl til at filen er for stor er: 1105
  'Der skete en fejl
Else
  'upload gennemført
End if

http://www.aspsmart.com/aspSmartUpload/liblocal/docs/Errors.htm

/hiks
Avatar billede madeindk Nybegynder
21. november 2004 - 11:23 #12
Jeg forstår ikke helt hvor jeg skal sætte det ind.
Avatar billede hiks Nybegynder
21. november 2004 - 11:36 #13
<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim oRs
  Dim intCount
  intCount=0
  Session.LCID = 1030     
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******

  mySmartUpload.Upload
  mySmartUpload.AllowedFilesList = "jpeg,jpg"
  mySmartUpload.MaxFileSize = 300000
 
  mySmartUpload.Upload
'  ******
  intCount = mySmartUpload.Save("D:\WWW\Sykonia\logind\portal\billeder\")                     

'  Connect to the DB
'  22:33 22-10-2004
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("databas/databas.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************
'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************


file.SaveAs "c:\123\" & file.FileName

filnavn = "http://portal.sykonia.dk/billeder/" & file.FileName

SQL = "UPDATE anv SET bild = '" & filnavn & "' WHERE ID  = '" & Session("id") & "'"
      oConn.Execute (SQL)

        intCount = intCount + 1
      End If
  Next

  If Err Then 'her indsættes din håndtering af fejl
      Response.Write("<b>Wrong selection : </b>" & Err.description)
  Else
  '  Display the number of files uploaded
  '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
  End If

'  Display the number of files uploaded
'  ************************************
  response.Redirect "visprofil.asp"

'  Destruction
'  ***********

  oConn.Close

  Set oConn = Nothing
%>
</BODY>
</HTML>
Avatar billede m_fisker Nybegynder
23. november 2004 - 09:54 #14
Og den modtager alle filer.
Avatar billede m_fisker Nybegynder
23. november 2004 - 09:55 #15
ups.. forkert sted
Avatar billede madeindk Nybegynder
17. december 2004 - 10:43 #16
Lukker.
Avatar billede madeindk Nybegynder
17. december 2004 - 10:44 #17
Svar.
Hiks får også point.
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