borde det inte vara ett till /-tecken här:
if not fso.FileExists(Server.MapPath("/upload" & mySmartUpload.Files("FILE1").FileName)) then
alltså
if not fso.FileExists(Server.MapPath("/upload/" & mySmartUpload.Files("FILE1").FileName)) then
4 svar · 258 visningar · startad av tank82
Behöver lite hjälp med en kod som innefattar FSO samt AspSmartUpload.
Problemet är att jag vill skapa en funktion som gör så att man ej kan ladda upp en fil som redan finns. Har sökt runt lite här på WF och kollat på andras lösningar med får ej mitt att fungera, kan tillägga att det var mycket långt tid sedan jag höll på med detta så skratta inte ;)
Formuläret
<FORM METHOD="POST" ACTION="uploadgo.asp" ENCTYPE="multipart/form-data">
<div align="center">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50">
<BR>
<INPUT TYPE="FILE" NAME="FILE2" SIZE="50">
<BR>
<INPUT TYPE="SUBMIT" VALUE="Ladda upp nu">
</div>
</FORM>
Koden
<%
On Error Resume Next
Dim mySmartUpload
Dim intCount
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.AllowedFilesList = "jpg,gif,wmv,avi,mov"
mySmartUpload.DenyPhysicalPath = True
mySmartUpload.MaxFileSize = 2000000
mySmartUpload.TotalMaxFileSize = 2000000
mySmartUpload.Upload
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(Server.MapPath("/upload" & mySmartUpload.Files("FILE1").FileName)) then
intCount = mySmartUpload.Save("/upload")
bild = mySmartUpload.Files("FILE1").FileName
If Err Then
Response.Write("<b>Fel : </b>" & Err.description)
Else
Response.Write("Antal filer uppladade = ")
Response.Write(intCount & "<br>(sökvägen till din fil är: /upload/dinfil.jpg)<br><br>")
Response.Write("<a href=""upload.asp"">Ladda upp fler filer</a>")
End If
else
Response.Write "Filnamnet används redan. Byt namn på filen och pröva på nytt"
end if
set fso = nothing
%>
Tack på förhand.
borde det inte vara ett till /-tecken här:
if not fso.FileExists(Server.MapPath("/upload" & mySmartUpload.Files("FILE1").FileName)) then
alltså
if not fso.FileExists(Server.MapPath("/upload/" & mySmartUpload.Files("FILE1").FileName)) then
Hehe oj då =)
jo nu fungerar det, fast bara om jag laddar upp en fil (FILE1) hur gör jag när man ska ladda upp två? dvs FILE1 & FILE2 från formulärsidan om man nu säger så..
om du har olika filfält så kan du kalla dem för FILE1, FILE2, FILE3 osv...
I formuläret du tar emot borde det bli något såsom...
<%
On Error Resume Next
Dim mySmartUpload
Dim intCount
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.AllowedFilesList = "jpg,gif,wmv,avi,mov"
mySmartUpload.DenyPhysicalPath = True
mySmartUpload.MaxFileSize = 2000000
mySmartUpload.TotalMaxFileSize = 2000000
mySmartUpload.Upload
For i = 0 To 5
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(Server.MapPath("/upload" & mySmartUpload.Files("FILE" & i).FileName)) then
intCount = mySmartUpload.Save("/upload")
bild = mySmartUpload.Files("FILE" & i).FileName
If Err Then
Response.Write("<b>Fel : </b>" & Err.description)
Else
Response.Write("Antal filer uppladade = ")
Response.Write(intCount & "<br>(sökvägen till din fil är: /upload/dinfil.jpg)<br><br>")
Response.Write("<a href=""upload.asp"">Ladda upp fler filer</a>")
End If
else
Response.Write "Filnamnet används redan. Byt namn på filen och pröva på nytt"
end if
set fso = nothing
Next
%>
Sen får du se till att kontrollera om det skickats upp en fil eller inte med en if-satts i For-lopen. Du kan ju t.ex. skicka upp fil1 och fil3 från formuläretmedans de andra inte innehåller något...
Aha ok får kolla lite närmare på det sedan, det fungerar bra att bara ladda upp en fil åt gången.
NY FRÅGA!
Hur gör jag för att skriva ut vilken sökväg filen får efter den är uppladdad?
Response.Write("Antal filer uppladade = ")
Response.Write(intCount & "<br>(sökvägen till din fil är: /upload/dinfil.jpg)<br><br>")