Avatar billede marvinq Nybegynder
08. september 2009 - 13:26 Der er 10 kommentarer og
1 løsning

Hjælp til filupload

Jeg har et problem med en upload funktion, som jeg bare ikke kan få til at virke. Det er måske mere et VBScribt spørgsmål end asp spørgsmål, men er ikke sikker.

Jeg har en upload-fil-funktion, som efter gennemse kører et script, men her fejler den omkring dette:

------------------------
'Åbn, skriv og luk outputfilen
Set fs = CreateObject("Scripting.FileSystemObject") 'Filsystem objekt

Set ts = fs.CreateTextFile(strFileSpec, True) 'Åbn outputfil
For i = intStartPos To intEndPos - 1
  ts.Write(Chr(AscB(MidB(bstrPostData, i, 1)))) 'Et tegn af gangen
Next
ts.Close 'Luk outputfil
------------------------

Jeg tror måske problemet er at jeg ikke har ret til at kalde CreateObject på mit webhotel. Kan der være noget om det? Og er der nogen der kender en fin metode til lige at kontrollere det?

Er der eventuelt andre som har et script, som virker, og som kan uploade pdf-filer til et webhotel. Jeg har denne til at virke på et andet webhotel med .jpg/.gif filer, men er i tvivl om det måske er pga. formatet at det ikke virker.

Nogen der kan hjælpe??
Avatar billede keysersoze Guru
08. september 2009 - 14:25 #1
hvilken fejl?
Avatar billede marvinq Nybegynder
08. september 2009 - 14:40 #2
Den giver fejlen:

------------------------------------------
Microsoft VBScript runtime  error '800a0046'

Permission denied

/lagerservice/fileupload.inc, line 204
------------------------------------------

Den fejler i linjen fs.CreateTextFile...

Jeg prøvede lige med følgende:

Set Upload = CreateObject("Persits.Upload") 'Filsystem objekt
count = Upload.Save("")

Der kommer den forbi CreateObject, men den kan ikke udføre Upload. Der får jeg fejlbeskeden:

------------------------------------------
Active Server Pages error 'ASP 0115'

Unexpected error

***.asp

A trappable error (C0000005) occurred in an external object. The script cannot continue running.
------------------------------------------

Kan det hjælpe noget? Jeg er sq helt blank.
Avatar billede keysersoze Guru
08. september 2009 - 19:47 #3
Din Permission denied skyldes med stor sandsynlighed manglende skriverettigheder der hvor du forsøger at gemme filen.

Den anden fejl siger mig ikke så meget - men mon ikke du i hvert fald skal have en mappeangivelse i din save, fx Save("c:/test").
Avatar billede marvinq Nybegynder
11. september 2009 - 13:03 #4
Hej igen,

Jeg tjekkede lige med hosten, og de har installeret aspSmartUpload, så scriptet skal vel se således ud:


--------------------------------------
<%
Dim mySmartUpload
Dim intCount

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

mySmartUpload.Upload

intCount = mySmartUpload.Save("\docs")

Response.Write(intCount & " file(s) uploaded")
%>
--------------------------------------

MEN... så kommer det gode spørgsmål så. Kan det virkelig passe det kun virker hvis man har egen opsat iis, så serveren ligger lokalt. Jeg kalder jo et website, så "c:/..." er jo ikke muligt for mig. Jeg har ikke kendskab til de faktiske adresser på serveren. Som i ovenstående eksempel efterlyser jeg en funktion, så jeg kan gemme filerne i en mappe ved navn docs. Kan det slet ikke lade sig gøre? Hvordan skal filstien se ud??

/MHQ
Avatar billede keysersoze Guru
13. september 2009 - 12:16 #5
nej - selvfølgelig passer det ikke, så ville webhotellerne jo ikke udbyde upload-komponenter.

Jeg kan ikke huske hvad aspsmartuploads save-metode godtager af parameter, men mon ikke det bare skal se ca sådan ud;

mySmartUpload.Save(Server.MapPath("\docs"))

Du kan jo prøve bare at udskrive

Response.Write Server.MapPath("\docs")

og se hvad den giver af resultat.

Men som skrevet tidligere så glem ikke at webhotellet kan have begrænsninger omkring til hvilke mappe du har skriverettigheder.
Avatar billede marvinq Nybegynder
14. september 2009 - 08:57 #6
Hej,

Hvis jeg indsætter som du skriver får jeg følgende fejl:

--------------------------------------------
aspSmartUpload.File error '80040465'

The path is not a virtual path (Error 1125).

/lagerservice/Upload2.asp, line 9
--------------------------------------------

Det vil sige at den ikke er i stand til at gemme på lokationen. Jeg har prøvet at indskrive den direkte sti som jeg får ved at udskrive, som nævnt i dit sidste svar, men det ændrer intet. Så svaret må være at jeg ikke har tilladelse til at skrive i mappen. Korrekt?
Avatar billede keysersoze Guru
14. september 2009 - 09:35 #7
Nej - det betyder at save-metode kræver en virtual sti og det er ikke hvad mit forslag giver. Det vil sige det rigtige er

mySmartUpload.Save("/docs")

Får du fejl på den bliver du nødt til at fortælle hvilken. Og husk stadig at undersøge hvad du har skriverettigheder til - og jo, selvfølgelig har du rettigheder til mindst én mappe, ellers ville webhotellet ikke have et upload-komponent.
Avatar billede marvinq Nybegynder
14. september 2009 - 09:48 #8
Okay,

Så får jeg følgende fejl:

--------------------------------------------
aspSmartUpload.File error '80040460'

Unable to save file (Error 1120)
--------------------------------------------

Når jeg tilgår ftp'en og vælger rettigheder for mappen og de øvre mapper, så står læs og skriv som tilladt.

Hvordan kan jeg skrive til roden? Hvad skal jeg skrive der?? Kan det være det bedre kan fungere?

Beklager hvis jeg spørger dumt, men er helt blank, har aldrig oplevet problemer med upload før, men har heller ingen erfaring med aspSmartUpload
Avatar billede keysersoze Guru
14. september 2009 - 10:11 #9
det er ikke FTP-rettigheder men derimod IIS-rettigheder der er bestemmende når du uploader gennem ASP - så igen, find ud af hvad du har af rettigheder (læs webhotellets support, snak med dem...).
Avatar billede marvinq Nybegynder
14. september 2009 - 13:31 #10
Bingo,

Det var IIS-rettighederne som var kodeordet. Det var mit hotel-udbyder bare ikke helt enig i.

Tak for en god walk-through :)

Smid et svar!
Avatar billede keysersoze Guru
14. september 2009 - 13:45 #11
svar :)
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