Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Du gör samma sak två gånger. Det andra sättet tror jag är mest riktigt.
:)
18 svar · 389 visningar · startad av medialabs
jag vet inte varför denna kod funkar, Med hjälp av denna kod så ska man kunna ladda upp filer men när den körs så får jag felmesset. Jag blir tokig, eftersom detta är till en tjänst jag håller på och fibblar med!
Microsoft VBScript runtime error '800a0035'
File not found
/webbdisk/ftpaction.asp, line 82
<!--#include file="settings.asp"-->
<%
'===============================================================================
'# Här skapar vi en ny mapp på användarens konto
'===============================================================================
If Request.Querystring("a") = "newdir" Then
Set Make_dir = Server.CreateObject("Scripting.FileSystemObject")
If Not Request.Form("target") = "" Then
Set Dir = Make_dir.CreateFolder(Server.MapPath(Request.Form("user") & "/" & Request.Form("target") & Request.Form("newdir")))
Else
Set Dir = Make_dir.CreateFolder(Server.MapPath(Request.Form("user") & "/" & Request.Form("newdir")))
End If
Response.Redirect "ftp.asp?dir=" & Request.Form("target")
End If
'===============================================================================
'# Här tar vi bort filer eller mappar från användarens konto
'===============================================================================
If Request.Querystring("a") = "delete" Then
Set Fso = Server.Createobject("Scripting.FileSystemObject")
strDelete = Server.MapPath(Request.Form("user") & "/" & Request.Form("target"))
If Request.Form("typ") = "fil" Then
Fso.DeleteFile(strDelete & i)
Else
Fso.DeleteFolder(strDelete & i)
End If
Set Fso = nothing
Response.Redirect "ftp.asp?dir=" & Request.Form("dir")
End If
'===============================================================================
'# Här tar döper vi om filer eller mappar på användarens konto
'===============================================================================
If Request.Querystring("a") = "rename" Then
Set fso = CreateObject("Scripting.FileSystemObject")
strOld = Server.MapPath(Request.Form("user") & "/" & Request.Form("target"))
strNew = Server.MapPath(Request.Form("user") & "/" & Left(Request.Form("target"), Len(Request.Form("target"))-Len(Request.Form("name"))) & Request.Form("newname"))
If Request.Form("typ") = "fil" Then
fso.MoveFile strOld, strNew
Else
fso.MoveFolder strOld, strNew
End If
Set fso = nothing
Response.Redirect "ftp.asp?dir=" & Request.Form("dir")
End If
'===============================================================================
'# Här flyttar vi filer på användarens konto
'===============================================================================
If Request.Querystring("a") = "move" Then
Set fso = CreateObject("Scripting.FileSystemObject")
strOld = Server.MapPath(Request.Form("user") & "/" & Request.Form("target"))
strNew = Server.MapPath(Request.Form("user") & "/" & Request.Form("dir") & "/" & Request.Form("name"))
fso.MoveFile strOld, strNew
Set fso = nothing
Response.Redirect "ftp.asp?dir=" & Request.Form("dir")
End If
'===============================================================================
'# Här laddar vi upp filer till användarens konto
'===============================================================================
If Request.Querystring("a") = "upload" Then
%>
<!--#include file="upload_data.asp" -->
<%
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
For x = 1 To strUploads
If Not UploadRequest.Item("file" & x).Item("Value") = "" Then
Set Fso = CreateObject("Scripting.FileSystemObject")
[b]Set Fso = Server.CreateObject("Scripting.FileSystemObject") ' Här blir det problem!!! Microsoft VBScript runtime error '800a0035' File not found.......[/b]
Set MyFile = Fso.GetFile(UploadRequest.Item("file" & x).Item("FileName"))
strFilesize = MyFile.Size
Set Fso = Nothing
If UploadRequest.Item("used").Item("Value") + strFilesize > strAccount Then
Session("error") = "Du har inte tillräckligt med utrymme på ditt konto \nför att ladda upp filen: " & Right(UploadRequest.Item("file" & x).Item("FileName"),Len(UploadRequest.Item("file" & x).Item("FileName"))-InstrRev(UploadRequest.Item("file" & x).Item("FileName"),"\")) & " "
Response.Redirect "ftp.asp?dir=" & UploadRequest.Item("target").Item("Value")
Else
filepathname = UploadRequest.Item("file" & x).Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("file" & x).Item("Value")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(UploadRequest.Item("user").Item("Value") & UploadRequest.Item("target").Item("Value") & filename))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
End If
End If
Next
Response.Redirect "ftp.asp?dir=" & UploadRequest.Item("target").Item("Value")
End If
%>
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Du gör samma sak två gånger. Det andra sättet tror jag är mest riktigt.
:)
Blev samma fel, spelar ingen roll om vilken jag tar bort
Är du förresten säker på att det är den raden?
Sedan hade jag lagt initieringen av objektet utanför loopen.
For x = 1 To strUploads
:)
Jag kontroll räkna och nu är det fel på rad 83
Set Fso = CreateObject("Scripting.FileSystemObject")
Fil not found......
trexter skrev:
Lägg initieringen av objektet utanför loopen,
även om det inte har något med felet att göra.:)
?? rena grekiskan :r
Lägg "Set Fso = Server.CreateObject("Scripting.FileSystemObject")" utanför loopen istället för innanför loopen tror jag väl att han menar?
Jepp, men nu när jag kolla på koden så gör det inte.
Jag avvaktar tills någon annan kan hjälpa dig.
:)
du kan ju testa att kommentera bort raden, se vad den sager da!
Det börjar ju bra... "Jag vet inte varför denna kod funkar..." He he..
Har den någonsin fungerat för dig? Innan ändringar kanske?
Denna rad:
For x = 1 To strUploads
Det ska inte stå 0 To strUploads?
solbulle skrev:
Det börjar ju bra... "Jag vet inte varför denna kod funkar..." He he..
Har den någonsin fungerat för dig? Innan ändringar kanske?Denna rad:
For x = 1 To strUploadsDet ska inte stå 0 To strUploads?
Nej det ska vara 1 :)
När jag gjorde scriptet och la ut det på nätet funkade allt, dock har jag inte den version du använder på datorn nu.. Den jag har är nyare och lite annan kod så jag kan inte se riktigt vad du ändrat..
Sen hoppas jag att det är en gratistjänst du håller på med, det är det väll?
Poffe skrev:
solbulle skrev:
Det börjar ju bra... "Jag vet inte varför denna kod funkar..." He he..
Har den någonsin fungerat för dig? Innan ändringar kanske?Denna rad:
For x = 1 To strUploadsDet ska inte stå 0 To strUploads?
Nej det ska vara 1 :)
När jag gjorde scriptet och la ut det på nätet funkade allt, dock har jag inte den version du använder på datorn nu.. Den jag har är nyare och lite annan kod så jag kan inte se riktigt vad du ändrat..
Sen hoppas jag att det är en gratistjänst du håller på med, det är det väll?
Jag har inte ändrat något i den där koden. Hittade scriptet i en gamal backup skiva daterad till 2002-15-01 igår och tänkte kolla om det funkade men icke, allt annat funkar förutom att ladda upp filer till kontot, jag kan ta bort filer och annat. Jag blir inte klok på det där.
Jag testade din första ftpaction från version 1.0 och den funkar utan problem.
Jag hoppas att någon kan hjälpa till att lösa detta.. :)
Om ni tar och tittar på den gamla ftpaction.asp filen som följer med i version 1.0 av scriptet så funkar det att använda den till denna version också men det fattas lite funktioner i den. Tex som kollar att man har utrymme osv...
<!--#include file="settings.asp"-->
<%
If Request.Querystring("a") = "newdir" Then
Set Make_dir = Server.CreateObject("Scripting.FileSystemObject")
If Not Request.Form("target") = "" Then
Set Dir = Make_dir.CreateFolder(Server.MapPath(Request.Form("user") & "/" & Request.Form("target") & Request.Form("newdir")))
Else
Set Dir = Make_dir.CreateFolder(Server.MapPath(Request.Form("user") & "/" & Request.Form("newdir")))
End If
Response.Redirect "ftp.asp?dir=" & Request.Form("target")
End If
If Request.Querystring("a") = "delete" Then
Set Fso = Server.Createobject("Scripting.FileSystemObject")
strDelete = Server.MapPath(Request.Form("user") & "/" & Request.Form("target"))
If Request.Form("typ") = "file" Then
Fso.DeleteFile(strDelete & i)
Else
Fso.DeleteFolder(strDelete & i)
End If
Set Fso = nothing
Response.Redirect "ftp.asp?dir=" & Request.Form("dir")
End If
If Request.Querystring("a") = "rename" Then
Set fso = CreateObject("Scripting.FileSystemObject")
If Request.Form("typ") = "file" Then
strOld = Server.MapPath(Request.Form("user") & "/" & Request.Form("target"))
strNew = Server.MapPath(Request.Form("user") & "/" & Request.Form("newname"))
fso.MoveFile strOld, strNew
Else
strOld = Server.MapPath(Request.Form("user") & "/" & Request.Form("target"))
strNew = Server.MapPath(Request.Form("user") & "/" & Request.Form("newname"))
fso.MoveFolder strOld, strNew
End If
Set fso = nothing
Response.Redirect "ftp.asp?dir=" & Request.Form("dir")
End If
If Request.Querystring("a") = "upload" Then
%>
<!--#include file="upload_data.asp" -->
<%
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
For x = 1 To strUploads
If Not UploadRequest.Item("file" & x).Item("Value") = "" Then
filepathname = UploadRequest.Item("file" & x).Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("file" & x).Item("Value")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(UploadRequest.Item("user").Item("Value") & UploadRequest.Item("target").Item("Value") & filename)) 'HÄR ÄNDRAR NI SÖKVÄGEN DÄR FILEN SKA SPARAS, HÄR I SAMMA KATALOG SOM UPLOAD_DONE.ASP LIGGER I
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
End If
Next
Response.Redirect "ftp.asp?dir=" & UploadRequest.Item("target").Item("Value")
End If
%>
Poffe, har du någon ny version av detta script?
Jag har försökt att felsöka i scriptet och kommit fram till att om jag tar bort följande så laddas det upp utan problem.
Set MyFile = Fso.GetFile(UploadRequest.Item("file" & x).Item("FileName"))
strFilesize = MyFile.Size
Set Fso = Nothing
If UploadRequest.Item("used").Item("Value") + strFilesize > strAccount Then
Session("error") = "Du har inte tillräckligt med utrymme på ditt konto \nför att ladda upp filen: " & Right(UploadRequest.Item("file" & x).Item("FileName"),Len(UploadRequest.Item("file" & x).Item("FileName"))-InstrRev(UploadRequest.Item("file" & x).Item("FileName"),"\")) & " "
Response.Redirect "ftp.asp?dir=" & UploadRequest.Item("target").Item("Value")
Else
Jag har ingen *klar* version förutom den första (1.0) och om det inte är den du har så blir jag lite fundersam eftersom det är den enda version som jag laggt upp..
Har för mig att det är adminnistrationen som inte är klar i den andra versionen...
Poffe skrev:
Jag har ingen *klar* version förutom den första (1.0) och om det inte är den du har så blir jag lite fundersam eftersom det är den enda version som jag laggt upp..
Har för mig att det är adminnistrationen som inte är klar i den andra versionen...
ok....