Avatar billede blaatand Nybegynder
02. august 2002 - 15:14 Der er 20 kommentarer og
1 løsning

Upload script hvor der er tjek!

Jeg kører i øjeblikket med dette her script:

<%
  Set Upload = Server.CreateObject("Persits.Upload.1")
  Count = Upload.save("d:\home\uodandk\www\admin\upload")
  Response.Write Count & " fil(er) modtaget.
%>

Jeg vil gerne have den til at lave et tjek om det er en .exe fil, eller noget andet... det må KUN være en speciel slags fil, ellers skal serveren/scriptet afvise det.

Nogen der har en løsning på den?
Avatar billede coltau Juniormester
02. august 2002 - 15:23 #1
Jeg mener at der står noget her om hvordan man begrænser til bestemte filtyper.

http://www.aspupload.com/manual.html
Avatar billede coltau Juniormester
02. august 2002 - 15:31 #2
Ellers kan du vel bruge funktionen EXT som fortæller hvilke type fil der er tale om.

For Each File in Upload.Files
  if File.Ext <> "exe" then ' Check måske for store og små bogstaver
    File.SaveAs File.FileName
  end if
Next
Avatar billede blaatand Nybegynder
02. august 2002 - 15:34 #3
nu har jeg aldrig været skide god til at forstå upload scripts i sig selv... har lige kigget på den url der, og kan sku ikke rigtig se noget der desideret er beregnet til det...
Avatar billede coltau Juniormester
02. august 2002 - 15:42 #4
Jeg mener at denne kode virker ...

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save ' Gem filer i hukommelsen

Path = "d:\home\uodandk\www\admin\upload"
Count = 0
For Each File in Upload.Files
  if (File.Ext <> "exe") then
    File.SaveAs Path & "\" & File.FileName
    Count = Count + 1
  end if
Next
Response.Write Count & " fil(er) modtaget.
%>
Avatar billede blaatand Nybegynder
02. august 2002 - 15:43 #5
jeg vil da lige give den et go så :)
Avatar billede blaatand Nybegynder
02. august 2002 - 15:48 #6
http://www.uo-dan.dk/test/

får en:

Microsoft VBScript compilation error '800a0409'

Unterminated string constant

/test/recive.asp, line 13

Response.Write Count & " fil(er) modtaget.
------------------------------------------^
Avatar billede blaatand Nybegynder
02. august 2002 - 15:51 #7
Det var lige et lille " der manglede... nu er det den her:

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'Save'

/test/recive.asp, line 3
Avatar billede coltau Juniormester
02. august 2002 - 15:56 #8
Prøv lige at skifte denne linie:

Upload.Save

til denne linie:

Upload.SaveToMemory
Avatar billede blaatand Nybegynder
02. august 2002 - 15:57 #9
så kommer denne:

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'File.Ext'

/test/recive.asp, line 9
Avatar billede coltau Juniormester
02. august 2002 - 16:03 #10
Underligt det står i manualen - men det kan være en ældre version.

Prøv at ændre if-sætningen
if (File.Ext <> "exe") then

til:
if (Right(File.FileName, 3) <> "exe") then
Avatar billede blaatand Nybegynder
02. august 2002 - 16:03 #11
Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'File.FileName'

/test/recive.asp, line 9
Avatar billede blaatand Nybegynder
02. august 2002 - 16:10 #12
Sætter 200 points på et script jeg kan få til at køre som det skal :)
Avatar billede coltau Juniormester
02. august 2002 - 16:17 #13
Jeg kan desværre ikke selv prøve koden - men når manualen ikke passer til versionen kan man jo prøve sig frem. Her har jeg ændret File.FileName til File.Name

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveToMemory ' Gem filer i hukommelsen

Path = "d:\home\uodandk\www\admin\upload"
Count = 0
For Each File in Upload.Files
  if (Right(File.Name, 3) <> "exe") then
    File.SaveAs Path & "\" & File.Name
    Count = Count + 1
  end if
Next
Response.Write Count & " fil(er) modtaget."
%>

Nærmere kan jeg nok ikke komme. :-(
Avatar billede blaatand Nybegynder
02. august 2002 - 16:20 #14
http://www.uo-dan.dk/test/

den der "virker" vist... jeg prøvede med en .txt fil, og den uploadede den ikke, men kom ikke med fejl...

prøver og ændre det til det det rigtigt skal være, nemlig warcraft 3 replay filer :)

2 secs
Avatar billede blaatand Nybegynder
02. august 2002 - 16:23 #15
ahh, den gemmer ikke filerne atm :(

w3g format virker i hvert fald ikke

koden ser således ud nu:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveToMemory ' Gem filer i hukommelsen

Path = "d:\home\uodandk\www"
Count = 0
For Each File in Upload.Files
  if (Right(File.Name, 3) <> "w3g") then
    File.SaveAs Path & "\" & File.Name
    Count = Count + 1
  end if
Next
Response.Write Count & " fil(er) modtaget."
%>
Avatar billede blaatand Nybegynder
02. august 2002 - 16:26 #16
ooh, kan det passe den gemmer den som virtual1 ... for det gør den vist..
Avatar billede coltau Juniormester
02. august 2002 - 16:26 #17
Skal den kun uploade filer med extention (w3g) så skal if-sætningen ændres til dette.

if (Right(File.Name, 3) = "w3g") then

Så tillader du jo kun w3g-filer
Avatar billede blaatand Nybegynder
02. august 2002 - 16:28 #18
Det har jeg skam ændret allerrede (se above)

og det ser ud til at virke, den gemmer bare ikke filnavnet under det navn den har, og ingen bennævenlse heller (w3g)
Avatar billede blaatand Nybegynder
02. august 2002 - 17:17 #19
Jeg laver et nyt post baseret på din kode... jeg har jo sådan set fundet det jeg skal bruge, men filen gemmer ikke som den skal. Men tak for koden, bygger videre på det :)
Avatar billede coltau Juniormester
02. august 2002 - 17:40 #20
Ok - jeg kan alligevel ikke gøre mere når jeg ikke selv kan teste det jeg forslår. :-)
Avatar billede blaatand Nybegynder
02. august 2002 - 17:42 #21
det er klart :(
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