Jag använder ASPSU för att ladda upp bilder.
Mitt problem är att jag ibland inte kan uppdatera bilden så som jag vill.
Filen skrivs inte över utan i stället skapas en annan fil utan filändelse, så att jag får två filer.
Enligt ASPSU:s hemsida sparar SaveAs ALLTID över den befintliga filen, alltså verkar det ltie konstigt.
Rättigheterna verkar vara rätt inställda
Koden är följande:
SessionUsername = Session("Username")
If Request.QueryString("WhatToDo") = "UploadFile" Then
On Error Resume Next
' Skapar objekt
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
' In med filändelsen i en variabel
FileExt = mySmartUpload.files.item(1).FileExt
' Bestämmer vilka filformat som ska tillåtas
mySmartUpload.AllowedFilesList = "gif,jpg"
' Neka fysisk sökväg
mySmartUpload.DenyPhysicalPath = False
' Är filen för stor?
if Request.ServerVariables("CONTENT_LENGTH") < 200000 then
' Ladda upp
mySmartUpload.Upload
' Spara filen på webbservern med ett speciellt namn.
mySmartUpload.files.item(1).SaveAs "/gdc/images/mempics/" & SessionUsername & "." & FileExt
' Ta bort gammal bild
StrPathGif = "C:\Inetpub/wwwroot/gdc/images/mempics/"& SessionUsername &".gif"
StrPathJpg = "C:\Inetpub/wwwroot/gdc/images/mempics/"& SessionUsername &".jpg"
Set filesys = CreateObject("Scripting.FileSystemObject")
If FileExt = "gif" Then
If filesys.FileExists(StrPathJpg) Then filesys.DeleteFile StrPathJpg
End If
If FileExt = "jpg" Then
If filesys.FileExists(StrPathJpg) Then filesys.DeleteFile StrPathGif
End If
else
ErrorSize = True
end if
' Felhantering
If Err Then
Error = True
Else
Error = False
End If
UploadFile = "yes"
End If
och lite längre ner på sidan:
'Skriver ut text som berättar hur filuppladdningen gick.
If UploadFile = "yes" AND ErrorSize = True Then
Response.Write "Filen för stor."
Else
If UploadFile = "yes" AND Error = False Then Response.Write "Din nya bild är nu uppladdad."
If UploadFile = "yes" AND Error = True Then Response.Write "Uppladdningen misslyckades. Dina filer måste ha filändelsen gif eller jpg." <---- meddelandet jag får
End If
Hoppas någon kan hjälpa mig med problemet. Säg även till om ni ser några andra förbättringar jag skulle kunna göra i min kod.
Det är väl inte direkt smart att låta kontot "Everyone" ha fullständiga rättigheter i de där mapparna va.
Ställ om så att kontot IUSR_Datornamn har rättigheterna Modify, Read & Execute, List folder Contents, Read och Write så bör det funka.
Dessutom bör du bocka bort så att mappen inte ärver sina rättigheter från ovanliggande mapp eller enhet.
Det är väl inte direkt smart att låta kontot "Everyone" ha fullständiga rättigheter i de där mapparna va.
Ställ om så att kontot IUSR_Datornamn har rättigheterna Modify, Read & Execute, List folder Contents, Read och Write så bör det funka.
Dessutom bör du bocka bort så att mappen inte ärver sina rättigheter från ovanliggande mapp eller enhet.
För det första så spelar det väl ingen roll om everyone har alla de där rättigheterna så länge jag inte har en applikation som tillåter dem att t.ex. ta bort filer?
Men, men, det andra är säkert ett bättre alternativ. Men kan du förklara hur jag ställer om IUSR och det andra?
Börja med att ta bort bocken så att mappen inte ärver rättigheter. När du gör det så får du välja om du vill ta bort eller kopiera rättigheterna från mappen eller enheten som ligger över den du håller på med. Oavsett vad du väljer så fortsätter du med att lägga till eller ta bort så att Administratören får fullständiga rättigheter och dessutom lägger du till kontot IUSR_Datornamn och ställer in rättigheterna så som jag skrev ovan.