webForumDet fria alternativet

Problem med FSO och AspSmartUpload

ASP

4 svar · 258 visningar · startad av tank82

Medlem sedan feb. 2003210 inlägg
Frågan#1

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.

Medlem sedan juli 20041 183 inlägg
#2

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

Medlem sedan feb. 2003210 inlägg
#3

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å..

Medlem sedan juli 20041 183 inlägg
#4

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...

Medlem sedan feb. 2003210 inlägg
#5

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>")
267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)