Använder uploadclassen som finns någonstans på detta forum. Vill kunna ändra vart filen ska kopieras med en variabel. Men jag får inte riktigt till det.
<%
Option Explicit
Dim varCopyToPath
Dim objUpload
Dim strName
dim objFile
Dim objFile2
Dim varyErrors
Dim iErr
Dim blnErr
'### copy to path ###'
varCopyToPath = request.querystring("copy_to_path")
if varCopyToPath <> "" then
response.write "<hr>ERROR. Copy to path is blank...<hr>"
else response.write "<hr>" &varCopyToPath &"<hr>"
end if
blnErr = False
Set objUpload = New overrUpload
strName = objUpload("txtName")
Response.Write("Copying file to webserver...")
'## -- get the first file for upload --
Set objFile = objUpload.Form("theFile")
'## -- check if we have a file --
If objFile.IsFile Then
'## -- file exists. proceed saving file. --
response.write "<hr>" &Server.MapPath(varCopyToPath &objFile.Filename)
Call objFile.SaveToFile(Server.MapPath(varCopyToPath &objFile.Filename), True)
'## -- check if any errors occured --
If objFile.HasErrors Then
blnErr = True
'## -- HUSTON! we got errors. proceed --
'## -- get all error messages --
varyErrors = objFile.GetErrors()
'## -- loop through all errors --
For iErr = 0 TO UBound(varyErrors)
'## -- print out error --
Response.Write(varyErrors(iErr) & "<hr>")
Next
End If
End If
Set objFile = Nothing
sub DONTRUN
'## -- get second file for upload --
Set objFile2 = objUpload.Form("anotherFile")
'## -- check if we have a file --
If objFile2.IsFile Then
'## -- file exists. proceed saving file. --
Call objFile2.SaveToFile(Server.MapPath("/upload/" & objFile2.Filename), True)
'## -- check if any errors occured --
If objFile2.HasErrors Then
blnErr = True
'## -- HUSTON! we got errors. proceed --
'## -- get all error messages --
varyErrors = objFile2.GetErrors()
'## -- loop through all errors --
For iErr = 0 TO UBound(varyErrors)
'## -- print out error --
Response.Write(varyErrors(iErr) & "<hr>")
Next
End If
End If
Set objFile2 = Nothing
end sub
Set objUpload = Nothing
'## -- check if we have any errors. If no errors redirect user to default page --
'If blnErr = False Then Response.Redirect("index.asp")
%>
<!--#INCLUDE VIRTUAL="/classes/clsupload.asp"-->
Överst i denna så skriver jag ut varCopyToPath men denna blir konstant "" (ingenting). Vad gör jag för fel.
hmmm....
Byter jag ut querystring mot request.form så får jag följande fel:
Request object error 'ASP 0206 : 80004005'
Cannot call BinaryRead
/classes/clsupload.asp, line 145
Cannot call BinaryRead after using Request.Form collection. ERROR: Couldn´t find the form
Jag använder hellre request.form om det är möjligt.
OveRRidEMedlem sedan feb. 200112 078 inlägg På rad 23 i ovan kod, finns denna rad. Den hämtar från form-samlingen.
strName = objUpload("txtName")
Ok...
Följande försök ger nu följande fel:
Set objUpload = New overrUpload
'### copy to path ###'
varCopyToPath = objUpload("copy_to_path")
if varCopyToPath = "" then
response.write "<hr>ERROR. Copy to path is blank...<hr>"
else
response.write "<hr>" &varCopyToPath &"<hr>"
end if
Response.Write("Copying file to webserver...")
'## -- get the first file for upload --
Set objFile = objUpload.Form("theFile")
'## -- check if we have a file --
If objFile.IsFile Then
'## -- file exists. proceed saving file. --
response.write "<hr>" &Server.MapPath(varCopyToPath &objFile.Filename)
Call objFile.SaveToFile(Server.MapPath(varCopyToPath &objFile.Filename), True)
'## -- check if any errors occured --
If objFile.HasErrors Then
blnErr = True
'## -- HUSTON! we got errors. proceed --
'## -- get all error messages --
varyErrors = objFile.GetErrors()
'## -- loop through all errors --
For iErr = 0 TO UBound(varyErrors)
'## -- print out error --
Response.Write(varyErrors(iErr) & "<hr>")
Next
End If
End If
Set objFile = Nothing
--------------------------------------------------------------------------------
/tab_log/personalmoten/aug/
--------------------------------------------------------------------------------
Copying file to webserver...
Microsoft VBScript runtime error '800a01a8'
Object required: '[string: "I:\_special\iar_intr"]'
/upload/upload.asp, line 28
Okej, my bad...
Ändrar jag formulärtypen från "file" till "text" så fungerar det inte. Men hur får jag till denna funktion? Jag vill alltså skicka filens path i ett text formulär istället för i ett file formulär...
<input name="theFile" type="text" id="theFile" value="<%=varSelectedLocalFile%>">
<input name="theFile" type="file" id="theFile">
// Tack, Mattias.
Går inte att använda text. Hade varit lite farligt om hemsideägare kunde hämta filer från användares dator.
Jag använder alltså <input name="theFile" type="file" id="theFile"> för att välja den lokala filen på sida A sedan gör jag lite behandling och skickar sedan vidare filpathen till sida B som i sin tur skickar vidare pathen till upload.asp (uploadskriptet).
Går det att sätta en value på input type="file" ?
grrr...
OveRRidEMedlem sedan feb. 200112 078 inlägg
mattiasnordin skrev:
OveRRidE ?
Jag är ingen dator. Jag är en människa och jag har ett behov av att äta, sova och bajsa precis som alla andra av samma ras som mig. Precis som du.
Därför kan jag inte vara närvarande på webForum 24 timmar om dygnet, även om jag hade velat det. Och det är därför, av denna enkla anledning, som du helt enkelt får vänta tills någon annan svarar på din fråga eller tills dess att jag råkar vara online igen. ;)
Men nu när jag ändå är här; vad exakt vill du utföra? Eller rättare sagt; varför vill du göra just så?
-
Jag vill kunna sätta vilken katalog som jag ska kopiera filen till.
Ovan fungerar OK!
-
Efter jag har valt filen som ska kopieras (input type="file" ?) så kontrollerar jag vilken typ av fil det är etc och sedan laddar jag om samma sida för att visa GUI:t med nya optioner. När jag laddar om sidan så töms men input type="file" ruta datan och jag vet inte hur man sätter ett value på denna. Min tanke vara att skicka datan till ett textfält istället för file formuläret.
Sidan kommer enbart vara accessbart på ett slutet nätverk så jag är inte så bekymrad över säkerhetsrelaterade problem...
PS Har inte webforum, precis som Dilbert, regler som kräver att semester uttages för att utföra sina behov? Ha ha... Skojjar bara...
Snabbt svarat! ;-)
DS