webForumDet fria alternativet

Om fil finns då ska den inte upploada igen

ASP

27 svar · 683 visningar · startad av voigtann1 · sida 2 av 2

Frågan, av voigtann1

Jag kör ASP smart Upload med denna kod: <% On Error Resume Next ' Variables ' Dim mySmartUpload Dim file Dim oConn Dim oRs Dim intCount intCount=0 ' Object creation ' Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") ' Only allow txt or htm files ' mySmartUpload.AllowedFilesLis

Läs frågan i sin helhet →
Medlem sedan juni 20019 519 inlägg
#21

okey.. nu har jag börjat att få inga mer errors.. men man kan fortfaranda lägga upp filerna igen och igen:

<%
'   On Error Resume Next
'  Variables
'  *********
   Dim mySmartUpload
   Dim file
   Dim oConn
   Dim oRs
   Dim intCount
   intCount=0
        
'  Object creation
'  ***************
   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Only allow txt or htm files
'  ***************************
   mySmartUpload.AllowedFilesList = "cfg,txt,zip,fcf"

'  DeniedFilesList can also be used :
   ' Allow all files except exe, bat and asp
   ' ***************************************
   ' mySmartUpload.DeniedFilesList = "exe,bat,asp,html"

'  Deny physical path
'  *******************
   mySmartUpload.DenyPhysicalPath = True

'  Only allow files smaller than 50000 bytes
'  *****************************************
   mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
   mySmartUpload.Upload

'  Connect to the DB
'  *****************
   Set oConn = Server.CreateObject("ADODB.Connection")
   curDir = Server.MapPath("db/config.mdb")
   oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

Set file = Server.CreateObject( "Scripting.FileSystemObject" ) 
'If file.FileExists(Server.MapPath("members/"& session("user") & "/" & File.FileName &")) Then 
If not file.FileExists( "/members/"& session("user") & "/" & mySmartUpload.Files(1).FileName) Then 

'  Open a recordset
'  ****************
   strSQL = "SELECT user,game,mo,global,version,name,info,FILENAME,FILE FROM Files"

   Set oRs = Server.CreateObject("ADODB.recordset")
   Set oRs.ActiveConnection = oConn
   oRs.Source = strSQL
   oRs.LockType = 3
   oRs.Open

'  Select each file
'  ****************
   For each file In mySmartUpload.Files
   '  Only if the file exist
   '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
         oRs.AddNew
		oRs("user")		=	session("user")
		oRs("game")		=	mySmartUpload.Form("game")
		oRs("mo")		=	mySmartUpload.Form("MODI")
		oRs("version")		=	mySmartUpload.Form("version")
		oRs("name")		=	mySmartUpload.Form("configname")
		oRs("info")		=	mySmartUpload.Form("info")
         file.FileToField oRs.Fields("FILE")
		oRs("FILENAME")		=	file.FileName
		oRs("user")		=	session("user")
		oRs("game")		=	mySmartUpload.Form("game")
		oRs("mo")		=	mySmartUpload.Form("MODI")
		oRs("version")		=	mySmartUpload.Form("version")
		oRs("name")		=	mySmartUpload.Form("configname")
		oRs("info")		=	mySmartUpload.Form("info")
if mySmartUpload.Form("global") = false then
		oRs("global")		=	false
else
		oRs("global")		=	true
end if
         oRs.Update
         intCount = intCount + 1
         intCount = mySmartUpload.Save("members/" & session("user"))
      End If
   Next

'  Trap errors
'  ***********
   If Err Then
      Response.Write("<b>Wrong selection : </b>" & Err.description)
   Else
   '  Display the number of files uploaded
   '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
   End If

'  Destruction
'  ***********
   oRs.Close
   oConn.Close
   Set oRs = Nothing 
   Set oConn = Nothing 
'response.redirect "archive.asp?member=" & session("user")
response.write "/members/"& session("user") & "/" & mySmartUpload.Files(1).FileName
else
Response.Write"Finns" 

end if
%>
Medlem sedan dec. 19996 721 inlägg
#22

Skrivs rätt sak ut med

response.write "/members/"& session("user") & "/" & mySmartUpload.Files(1).FileName

?

Varför lagrar du filen i databasen och sparar den som en fil?

Medlem sedan juni 20019 519 inlägg
#23

svar på frågan: Man ska kunna få mer info om filen och filnamnet ska peka till filen som du lägger upp.

Och jag testade att skriva ut det så.. och då får jag namnet och sånt.. men den stoppar inte den ändå =(

Medlem sedan dec. 19996 721 inlägg
#24

Man ska kunna få mer info om filen och filnamnet ska peka till filen som du lägger upp.

Men att lagra själva filinnehållet två gånger måste vara överflödigt.

Och jag testade att skriva ut det så.. och då får jag namnet och sånt.. men den stoppar inte den ändå =(

Vad skrivs ut?

Medlem sedan juni 20019 519 inlägg
#25

exempel:

response.write "/members/"& session("user") & "/" & mySmartUpload.Files(1).FileName

blir:

/members/emission/dinfil.cfg

Hur ska jag göra då?

Medlem sedan dec. 19996 721 inlägg
#26

server.mappath behövs runt filnamnet också.

Medlem sedan mars 20015 287 inlägg
#27

Kanske...

(obs att dina includes föll bort.)


<%
'   On Error Resume Next
'  Variables
'  *********
   Dim mySmartUpload
   Dim file
   Dim oConn
   Dim oRs
   Dim intCount
   intCount=0
        
'  Object creation
'  ***************
   Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Only allow txt or htm files
'  ***************************
   mySmartUpload.AllowedFilesList = "cfg,txt,zip,fcf"

'  DeniedFilesList can also be used :
   ' Allow all files except exe, bat and asp
   ' ***************************************
   ' mySmartUpload.DeniedFilesList = "exe,bat,asp,html"

'  Deny physical path
'  *******************
   mySmartUpload.DenyPhysicalPath = True

'  Only allow files smaller than 50000 bytes
'  *****************************************
   mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
   mySmartUpload.Upload

'  Connect to the DB
'  *****************
   Set oConn = Server.CreateObject("ADODB.Connection")
   curDir = Server.MapPath("db/databas.mdb")
   oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

'  Open a recordset
'  ****************
   strSQL = "SELECT user,game,mo,global,version,name,info,FILENAME,FILE FROM Files"

   Set oRs = Server.CreateObject("ADODB.recordset")
   Set oRs.ActiveConnection = oConn
   oRs.Source = strSQL
   oRs.LockType = 3
   oRs.Open

'  Select each file
'  ****************
   For each file In mySmartUpload.Files
   '  Only if the file exist
   '  **********************
      If not file.IsMissing Then

Set filen = Server.CreateObject("Scripting.FileSystemObject" ) 
If not filen.FileExists(server.mappath("members") & "/" & session("user") & "/" & File.FileName)  Then 

      '  Add the current file in a DB field
      '  **********************************
         oRs.AddNew
		oRs("user")		=	session("user")
		oRs("game")		=	mySmartUpload.Form("game")
		oRs("mo")		=	mySmartUpload.Form("MODI")
		oRs("version")		=	mySmartUpload.Form("version")
		oRs("name")		=	mySmartUpload.Form("configname")
		oRs("info")		=	mySmartUpload.Form("info")
         file.FileToField oRs.Fields("FILE")
		oRs("FILENAME")		=	file.FileName
		oRs("user")		=	session("user")
		oRs("game")		=	mySmartUpload.Form("game")
		oRs("mo")		=	mySmartUpload.Form("MODI")
		oRs("version")		=	mySmartUpload.Form("version")
		oRs("name")		=	mySmartUpload.Form("configname")
		oRs("info")		=	mySmartUpload.Form("info")
if mySmartUpload.Form("global") = false then
		oRs("global")		=	false
else
		oRs("global")		=	true
end if
         oRs.Update
         intCount = intCount + 1
		intCount = mySmartUpload.Save("members" & "/" & session("user"))

else

Response.Write "Filen finns redan.<p>" 

      End If

End If

   Next

'  Trap errors
'  ***********
   If Err Then
      Response.Write("<b>Wrong selection : </b>" & Err.description)
   Else
   '  Display the number of files uploaded
   '  ************************************
      Response.Write(intCount & " file(s) uploaded.")
   End If

'  Destruction
'  ***********
   oRs.Close
   oConn.Close
   Set oRs = Nothing 
   Set oConn = Nothing 

%>

<%
' On Error Resume Next
' Variables
' *********
Dim mySmartUpload
Dim file
Dim oConn
Dim oRs
Dim intCount
intCount=0

' Object creation
' ***************
Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

' Only allow txt or htm files
' ***************************
mySmartUpload.AllowedFilesList = "cfg,txt,zip,fcf"

' DeniedFilesList can also be used :
' Allow all files except exe, bat and asp
' ***************************************
' mySmartUpload.DeniedFilesList = "exe,bat,asp,html"

' Deny physical path
' *******************
mySmartUpload.DenyPhysicalPath = True

' Only allow files smaller than 50000 bytes
' *****************************************
mySmartUpload.MaxFileSize = 50000

' Upload
' ******
mySmartUpload.Upload

' Connect to the DB
' *****************
Set oConn = Server.CreateObject("ADODB.Connection")
curDir = Server.MapPath("db/databas.mdb")
oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

' Open a recordset
' ****************
strSQL = "SELECT user,game,mo,global,version,name,info,FILENAME,FILE FROM Files"

Set oRs = Server.CreateObject("ADODB.recordset")
Set oRs.ActiveConnection = oConn
oRs.Source = strSQL
oRs.LockType = 3
oRs.Open

' Select each file
' ****************
For each file In mySmartUpload.Files
' Only if the file exist
' **********************
If not file.IsMissing Then

Set filen = Server.CreateObject("Scripting.FileSystemObject" )
If not filen.FileExists(server.mappath("members") & "/" & session("user") & "/" & File.FileName) Then

  '  Add the current file in a DB field
  '  \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
     oRs.AddNew
	oRs("user")		=	session("user")
	oRs("game")		=	mySmartUpload.Form("game")
	oRs("mo")		=	mySmartUpload.Form("MODI")
	oRs("version")		=	mySmartUpload.Form("version")
	oRs("name")		=	mySmartUpload.Form("configname")
	oRs("info")		=	mySmartUpload.Form("info")
     file.FileToField oRs.Fields("FILE")
	oRs("FILENAME")		=	file.FileName
	oRs("user")		=	session("user")
	oRs("game")		=	mySmartUpload.Form("game")
	oRs("mo")		=	mySmartUpload.Form("MODI")
	oRs("version")		=	mySmartUpload.Form("version")
	oRs("name")		=	mySmartUpload.Form("configname")
	oRs("info")		=	mySmartUpload.Form("info")

if mySmartUpload.Form("global") = false then
oRs("global") = false
else
oRs("global") = true
end if
oRs.Update
intCount = intCount + 1
intCount = mySmartUpload.Save("members" & "/" & session("user"))

else

Response.Write "Filen finns redan.<p>"

  End If

End If

Next

' Trap errors
' ***********
If Err Then
Response.Write("<b>Wrong selection : </b>" & Err.description)
Else
' Display the number of files uploaded
' ************************************
Response.Write(intCount & " file(s) uploaded.")
End If

' Destruction
' ***********
oRs.Close
oConn.Close
Set oRs = Nothing
Set oConn = Nothing

%>

Vet inte om det är det mest optimal, men hur som.

Medlem sedan juni 20019 519 inlägg
#28

Tack! fungera fint!

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)