webForumDet fria alternativet

aspsmart & fso

ASP

9 svar · 977 visningar · startad av Brizer

Medlem sedan mars 200623 inlägg
Frågan#1

Hej. För det första vill jag berätta att jag verkligen sökt i forumet men inte hittat hjälp, så tänkte att jag skulle skapa en tråd.

Med ett aspSmartUpload-script så laddar jag då upp en valfri fil till en temporär mapp. Därefter vill jag att denna fil som laddas upp flyttas automatiskt till den inloggade användarens mapp.

Koden:

If Request.QueryString("send") <> "" Then
Dim mySmartUpload
Dim intCount

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.Upload
intCount = mySmartUpload.Save("/brizer/wwwroot/temp")

Response.Write("  " & intCount & " file uploaded. <br><br>")
' här är filen uppladdad, helt utan problem. Hur vet jag namnet på filen jag just laddat upp? Skulle vilja sätta en variabel så att jag kan anropa det senare i fso-koden.

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile Server.MapPath("wwwroot/temp/FILANROP") ,Server.MapPath("wwwroot/1/FILANROP")
end if

Där det står filanrop vill jag ha namnet på filen jag just laddat upp, hur tar jag reda på det? Tack på hörhand.

Medlem sedan okt. 20041 556 inlägg
#2
Set oSmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

oSmartUpload.Upload

For each file In oSmartUpload.Files
If not file.IsMissing Then
file.SaveAs("c:\Temp\" & file.FileName)
Response.Write("Name = " & file.Name & "<BR>")
Response.Write("Size = " & file.Size & "<BR>")
intCount = intCount + 1
End If
Next
Medlem sedan mars 200623 inlägg
#3

Det där funkade. Men nu till ett nytt problem, jag vill flytta filen till en mapp där jag anropar ett annat variabel;

-
pathid = Request.QueryString("pathid")
fileupl = file.FileName

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile Server.MapPath("wwwroot/temp/" & fileupl) , Server.MapPath("wwwroot/pathid/" & fileupl)
-

Jag försökte trixa med pathid för att få in den, men får felmeddelandet att det finns ett ogiltigt / med i koden. Hur kan jag lösa detta?

Medlem sedan okt. 20041 556 inlägg
#4

Du skall nog inte ha med "wwwroot", ta bort det.

Medlem sedan mars 200623 inlägg
#5

Jag har exprimenterat lite och det visar sig fungera bra då jag inte anropar variabeln pathid. Den koden jag vill ha fungerande är alltså:

objFSO.MoveFile Server.MapPath("wwwroot/temp/" & fileupl) , Server.MapPath("wwwroot/" & pathid & "/" & fileupl)

När jag provade denna kod:

objFSO.MoveFile Server.MapPath("wwwroot/temp/" & fileupl) , Server.MapPath("wwwroot/14/" & fileupl)

Så fungerade allt bra. Notera att 14 i det fallet är pathid't som jag vill anropa. Notera också att jag efter exprimerande kom fram till att wwwroot ska vara där.

Hur ska jag bära mig åt för att anropa ett variabel här, utan att få felmeddelandet med ett "/" eller "\" för mycket?

Medlem sedan juni 20019 519 inlägg
#6

Kontrollera att du har något i pathId och om du har det så lägger du till det extra & "/".

Medlem sedan mars 200623 inlägg
#7

Jag har kontrollerat pathid, och det finns en siffra där, Dock efter att jag skickat en fil så försvinner variabeln pathid (det finns inget där). Jag kan även tillägga att sidan jag laddar upp i är en iframe till huvudsidan. Jag använder följande kod i huvudsidan:

<iframe src="upload.asp?pathid=<%=Session("id")%>" name="iframe">
<link href="/item/design/style.css" type="text/css" rel="stylesheet">
</iframe>

i upload.asp så ser det ut som föjlande:

pathid = Request.QueryString("pathid") & "/"
If Request.QueryString("send") <> "" Then
Dim mySmartUpload
Dim intCount

Set oSmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
oSmartUpload.Upload

For Each file In oSmartUpload.Files
    If Not file.IsMissing Then
        file.SaveAs("wwwroot/temp/" & file.FileName)
        Response.Write("Name = " & file.Name & "\<BR\>")
        intCount = intCount + 1
        fileupl = file.FileName
    End If
Next

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile Server.MapPath("wwwroot/temp/" & fileupl) , Server.MapPath("wwwroot/" & pathid & fileupl) ' Här innehåller bara pathid ett /, alltså inte request.querystring("pathid"), därför får jag felmeddelandet med ett slash-tecken för mycket. Hur kommer det sig att querystringen försvunnit?

Else
Response.Write "   Select to upload... <br><br>"
End If

Medlem sedan mars 20015 287 inlägg
#8

Är det så att du först har med dig din variabel och sen postar din form?
Om du postar formen så går din variabel förlorad om du inte på nytt lägger med den i querystringen eller postar den i ett dolt fält etc.

Medlem sedan juli 20003 825 inlägg
#9

Kan du inte bara ladda upp filen i rätt mapp från början? Vad hindrar dig från detta...?

Medlem sedan mars 200623 inlägg
#10

solbulle, där satt den.

självklart hade jag glömt bort action="---" i formuläret, och blev tvungen att lägga till en querystring där med. Tack alla för hjälpen.

266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)