Satt och tittade på Pelles artikel om uppladdning utan komponent med ASP... I näst sista kodrutan på http://www.pellesoft.se/area/articles/article.aspx?artid=775 hittar du sökvägen: Alltså, hur skriver jag vilken mapp jag vill att filen ska ligga i..? :) Kolla i rutan ovanför, där står det: "det går inte" antar jag betyder att något inte uppträder som du tänkt dej, breskriv gärna hur och bifoga ev. felmeddelanden :) Upload.asp: Blir fName rätt? Testade rakt av och slängde in din kod tillsammans med main.asp från artikeln och fick ett märkligt resultat i fName. Ja, fName blir helt rätt!! kan vara skrivrättigheterna är hämmade på servern. Konstigt!!!! >Dessutom är det ju inte anonyma användare, det är bara lilla jag som ska lägga in i mappen!! Nu funkar allt! Fast nu har jag nästa problem: Det beror på att man inte kan läsa från request.form i samband med att man använder BinaryRead, använd istället objektet myRequest som skapas i scriptet. jo men dock endast om man använder sig av aspupload (har jag för mig.)Fattar noll om uppladdning...
Behöver det verkligen vara så komplicerat??
T ex, vart skriver man mappen som filen ska sparas i?? eller är jag bara blind.. :/
Tack för svar!!
//Susanne HKSv: Fattar noll om uppladdning...
SavePath = Server.MapPath(FilePath)
/JohanSv:Fattar noll om uppladdning...
Sv: Fattar noll om uppladdning...
FilePath = "./" & ...
Det betyder att filen sparas i samma mapp som scriptet finns i. Vill du ha en mapp under gör du såhär:
FilePath = "./MinFinaMapp/" & ...
Vill du ha i mappen över:
FilePath = "../" & ..
Vill du ange en absolut sökväg:
FilePath = "C:\MinMapp\" & ...
du får även ta bort Server.MapPath
SavePath = FilePath
/JohanSv: Fattar noll om uppladdning...
Bifoga gärna din kod också så vi kan se att inget har blivit fel.
/JohanSv:Fattar noll om uppladdning...
<code>
<%
server.ScriptTimeout = 1000
const Forwriting = 2
const TristateTrue = -1
CrLf = Chr(13) & Chr(10)
Function GetFieldName(infoStr)
sPos = InStr(infoStr, "name= ")
EndPos = InStr(sPos + 6, infoStr, Chr(34) & ";")
if EndPos = 0 then
EndPos = inStr(sPos + 6, infoStr, Chr(34))
end if
GetFieldName = Mid(infoStr, sPos + 6, endpos - (sPos + 6))
End Function
Function GetFileName(infoStr)
sPos = inStr(infoStr, "filename= ")
endPos = inStr(infoStr, Chr(34) & CrLf)
GetFileName = Mid(infoStr, sPos + 10, endPos - (sPos + 10))
End Function
Function GetFileType(infoStr)
sPos = inStr(infoStr, "Content-Type: ")
GetFileType = mid(infoStr, sPos + 14)
End Function
PostData = ""
dim biData
biData = Request.BinaryRead(Request.TotalBytes)
for nIndex = 1 to LenB(biData)
PostData = PostData & Chr(AscB(MidB(biData,nIndex,1)))
Next
ContentType = Request.ServerVariables("HTTP_CONTENT_TYPE")
ctArray = Split(ContentType,";")
If Trim(ctArray(0)) = "multipart/form-data" then
ErrMsg = ""
bArray = Split(Trim(ctArray(1)), "=")
Boundary = Trim(bArray(1))
FormData = Split(PostData, Boundery)
Dim MyRequest, MyRequestFiles(9,3)
Set MyRequest = CreateObject("Scripting.Dictionary")
FileCount = 0
For x = 0 to UBound(FormData)
InfoEnd = inStr(FormData(x), CrLf & CrLf)
If InfoEnd > 0 then
varInfo = Mid(FormData(x), 3, InfoEnd - 3)
varValue = Mid(FormData(x), InfoEnd + 4, Len(FormData(x)) - InfoEnd - 7)
If (inStr(varInfo, "filename=") > 0) then
myRequestFiles(FileCount, 0) = GetFieldName(varInfo)
myRequestFiles(FileCount, 1) = varValue
myRequestFiles(FileCount, 2) = GetFileName(varInfo)
myRequestFiles(FileCount, 3) = GetFileType(varInfo)
FileCount = FileCount + 1
Else
myRequest.Add GetFieldName(varInfo), varValue
End if
End If
Next
Else
ErrMsg = "Fel encoding-typ"
End if
Set lf = server.CreateObject("scripting.FileSystemObject")
sPos = inStrRev(myRequestFiles(0,2), "\")
fName = Mid(myRequestFiles(0,2), sPos + 1)
FilePath = "./images/gallery/" & fName
SavePath = server.MapPath(FilePath)
Set SaveFile = lf.CreateTextFile(SavePath, true)
SaveFile.write(myRequestFiles(0,1))
SaveFile.close
set con=server.createobject("ADODB.connection")
con.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db\basis.mdb") & ";"
set rs = server.createobject("ADODB.recordset")
rs.open "Gallery", con, 2, 3
rs.addnew
rs("BildNamn")=fName
rs.update
con.Close
Set con = nothing
set rs = nothing
Response.Redirect("Admin_Gallery.asp")
%>
</code>
Vad som (inte) händer:
* Ingen bild läggs i gallerymappen
:/
Tack för er tid!Sv: Fattar noll om uppladdning...
Har anonyma användare rätt att skriva till platsen ./images/gallery/?
Får du något felmeddelande? Sv:Fattar noll om uppladdning...
Det ser jag i databasen..
Dessutom är det ju inte anonyma användare, det är bara lilla jag som ska lägga in i mappen!!
I annat fall, hur kollar jag rättigheterna (eftersom mappen ligger på ett webbhotell)??
Inget felmeddelande heller!! Det är bara att jag inte vet om det ens hämtas med någon fil, eftersom det inte hamnar några filer i images/gallery/...
:(
TackSv: Fattar noll om uppladdning...
Hrö av dig till webbhotellet och be om att ta bort skrivskyddet på mappen så kanske det fixar sig.Sv:Fattar noll om uppladdning...
Jag har provat att ladda upp "xxx.jpg" till images/gallery/, men det visas inte i mappen att den ligger där. Ingenstans ser jag den (inte ens om jag visar dolda filer!!)
Men när jag försöker kopiera in xxx.jpg till den mappen så säger den "vill du ersätta xxx.jpg som redan ligger i mappen?"!!!
Jag blir tokig!!Sv: Fattar noll om uppladdning...
När en person surfar in på din sida används en anonym identitet om inget annat är inställt.Sv: Fattar noll om uppladdning...
nu har jag en textruta till i formen i Admin_Gallery.asp.
alltså har jag i Upload.asp skrivit
<code>
Bildinfo = request.form("Bildinfo")
</code>
men då får jag felmeddelandet
<code>
Feltyp:
Request-objekt, ASP 0206 (0x80004005)
Det går inte att anropa BinaryRead efter att samlingen Request.Form har använts.
/susi/Upload.asp, line 35
</code>
Jag kan alltså inte få med mig en ruta med info om bilden så här??Sv:Fattar noll om uppladdning...
Bildinfo = myRequest("Bildinfo")
/JohanSv:Fattar noll om uppladdning...