webForumDet fria alternativet

bilduppladdning

ASPur ASP

29 svar · 842 visningar · startad av Vinnaren

VinnarenMedlem sedan sep. 2005833 inlägg
#1

Hej

Jag behöver hjälp med min bilduppladdning. har hittills följande kod:

		Set Upload = Server.CreateObject("Persits.Upload.1") 
		
		Count = Upload.Save("c:\upload")
		Upload.SetMaxSize 50000
		
		Upload.OverwriteFiles = False
	
		
			bildNamn = SafeSQL(Upload.Files(1).ExtractFileName)
			bildAgare = CLng(session("userID"))
			bildTyp	  = ??
			
			
			objConn.execute("INSERT INTO bildHistorik (bildAgare, bildNamn, bildTyp)" &  " VALUES (" & bildAgare & ", '" & bildNamn & "', '" & bildTyp & "')") 
	
			Response.Write ""&bildNamn&" är nu sparad"

Det man laddar upp sparas, men nu vill jag att filen man laddar upp ska få ett ID nummer av databasen som filnamn. Sen så ska filnamnet sparas i databasen vilket det gör, men jag vill även att filtypen ska sparas i databasen i kolumnen bildTyp typ gif, png osv.

Hur löser jag dessa två saker??

Tacksam för all hjälp

voigtann1Medlem sedan juni 20019 519 inlägg
#2
bildTyp	  = SafeSQL(Upload.Files(1).ImageType)

skulle jag gissa på en snabb läsning på http://www.aspupload.com/

VinnarenMedlem sedan sep. 2005833 inlägg
#3

ok, men hur får jag ut den genererade PK i databasen när jag sparar bilden där?? Så man vet vilket namn bilden ska ha???

voigtann1Medlem sedan juni 20019 519 inlägg
#4

va?

Du har sparat sökvägen på databasen inte bilden, bilden har du laddat upp på c:\upload på din Server... om vi säger nu att din sida ligger rakt på c:\ så får du göra en databas öppning med SELECT * From bildHistorik

Sen göra något recordset som loopar ut alla bilder med något i stil med:

do until rs.eof
response.write "<img src=""upload\" & rs("bildNamn") &""" alt=""""/>"
rs.movenext
loop
VinnarenMedlem sedan sep. 2005833 inlägg
#5

hmm

jag måste ju spara bildens namn i databasen först. Sen så ska bilden få ett nytt namn, det ID-nummer som den fick i databasen

voigtann1Medlem sedan juni 20019 519 inlägg
#6

läs http://www.aspupload.com/ har för mig dom har en bra tutorial om detta..

VinnarenMedlem sedan sep. 2005833 inlägg
#7

ok, har läst den ett antal gånger. Men problemet just nu är hur får jag ut det ID som bilden får när man sparar den i databasen?

@ndersMedlem sedan juni 200032 969 inlägg
#8

Ett alternativ är ju att direkt efter insert hämta ut id med select @@identity, och sedan använda FSO för att byta namn på filen som har laddats upp.

Om man inte orkar göra på rätt sätt, dvs göra insert innan dess att man sparar filen alltså.

VinnarenMedlem sedan sep. 2005833 inlägg
#9

ok, har nu följande kod:

Set Upload = Server.CreateObject("Persits.Upload") 
	
		
			bildNamn = SafeSQL(Upload.Files.ExtractFileName)
			bildAgare = CLng(session("userID"))
			bildTyp	  = SafeSQL(Upload.Files.ImageType)
				
				
			'####Kontrollerar om namnet på filen redan finns
			Set objRS = objConn.Execute("SELECT * FROM bildHistorik WHERE bildNamn= "&bildNamn)	
				
			IF objRS.EOF THEN			
				
				objConn.execute("INSERT INTO bildHistorik (bildAgare, bildNamn, bildTyp)" &  " VALUES (" & bildAgare & ", '" & bildNamn & "', '" & bildTyp & "')") 
	
				
				'Hämtar ut bildens id nummer
				Set objRS1 = objConn.Execute("SELECT bildID FROM bildHistorik WHERE bildNamn= "&bildNamn)	
				
				IF NOT objRS1.EOF THEN			
			
			
					Count = Upload.Save("c:\upload\" & objRS("bildID") & "." & Upload.Files.ImageType & "")
				
					
					Upload.SetMaxSize 50000
					
					Upload.OverwriteFiles = False
				
		
				
					Response.Write ""&bildNamn&" är nu sparad"
					
					
					
				ELSE
					Response.Write "Bilden kunde inte sparas i databasen"
				END IF
				
	
			ELSE
				Response.Write "Filnamnet finns redan i databasen"
			END IF

Men jag får följande felmeddelande när bilden ska sparas:
Object doesn't support this property or method: 'Upload.Files.ExtractFileName'

på raden:

bildNamn = SafeSQL(Upload.Files.ExtractFileName)

@ndersMedlem sedan juni 200032 969 inlägg
#10

@@identity var inget att tänka på för att hämta rätt id?
Dessutom måste du lära dig att ha apostrofer runt strängvärden (bildnamn till exempel) i dina SQL-frågor.

I tillägg tror jag minsann att du måste spara filen till minne först (typ utan att ange sökväg) och sedan kan du komma åt dess egenskaper. När du är klar med allt annat kan du så spara till disk.

VinnarenMedlem sedan sep. 2005833 inlägg
#11

provar detta sätt först för att få ut ID:t.

har nuu följande kod:

Count = Upload.Save("c:\temp")
	
		
			bildNamn = SafeSQL(Upload.Files.ExtractFileName)
			bildAgare = CLng(session("userID"))
			bildTyp	  = SafeSQL(Upload.Files.ImageType)			
				
				
			'####Kontrollerar om namnet på filen redan finns
			Set objRS = objConn.Execute("SELECT * FROM bildHistorik WHERE bildNamn= '"&bildNamn&"'")	
				
			IF objRS.EOF THEN			
				
				objConn.execute("INSERT INTO bildHistorik (bildAgare, bildNamn, bildTyp)" &  " VALUES (" & bildAgare & ", '" & bildNamn & "', '" & bildTyp & "')") 
	
				
				'Hämtar ut bildens id nummer
				Set objRS1 = objConn.Execute("SELECT bildID FROM bildHistorik WHERE bildNamn= '"&bildNamn&"'")	
				
				IF NOT objRS1.EOF THEN			
			
					Upload.SetMaxSize 50000
					
					Upload.OverwriteFiles = False
		
					Upload.Files(1).MoveVirtual ("c:\upload\" & objRS("bildID") & "." & Upload.Files.ImageType & "")
		
				
					Response.Write ""&bildNamn&" är nu sparad"
					
					
					
				ELSE
					Response.Write "Bilden kunde inte sparas i databasen"
				END IF
				
	
			ELSE
				Response.Write "Filnamnet finns redan i databasen"
			END IF

Men jag får samma felmeddelande som innan. Bilden sparas dock i temp mappen, men sen kommer felmeddelandet:
Object doesn't support this property or method: 'Upload.Files.ExtractFileName'

@ndersMedlem sedan juni 200032 969 inlägg
#12

Du har ju ändrat på din kod. Files är en collection. Så här har du skrivit i ditt första inlägg:

bildNamn = SafeSQL(Upload.Files(1).ExtractFileName)
VinnarenMedlem sedan sep. 2005833 inlägg
#13

oki, nu kommer jag ialla fall ner till raden

Upload.Files(1).MoveVirtual ("c:\upload\" & objRS("bildID") & "." & Upload.Files.ImageType & "")

innan det kraschar. Får nu felmeddelandet:
Exception occurred.

@ndersMedlem sedan juni 200032 969 inlägg
#14

samma sak här:

Upload.Files.ImageType

VinnarenMedlem sedan sep. 2005833 inlägg
#15

hjälpte inte att ändra, får samma felmeddelande :q

@ndersMedlem sedan juni 200032 969 inlägg
#16

Varför använder du MoveVirtual och anger en full sökväg?

http://www.aspupload.com/object_file.html#Move

VinnarenMedlem sedan sep. 2005833 inlägg
#17

hmm, för mycket copy & paste ;)

Har nu provat:

File.Move ("c:\upload\" & objRS("bildID") & "." & Upload.Files(1).ImageType & "")

och

Upload.Move ("c:\upload\" & objRS("bildID") & "." & Upload.Files(1).ImageType & "")

men bägge ger samma felmeddelande som innan §jr

voigtann1Medlem sedan juni 20019 519 inlägg
#18

Upload.Move ("c:\upload\" & objRS("bildID") & "." & Upload.Files(1).ImageType & "")

du behöver inte ha & "" i slutet... annars måste du använda dig av & """

@ndersMedlem sedan juni 200032 969 inlägg
#19

Har du skapat objektet File då?
(Du kan inte använda objektet Upload, metoden Move tillhör file-objektet)

VinnarenMedlem sedan sep. 2005833 inlägg
#20

får nu felmeddelandet:
Object doesn't support this property or method: 'Upload.Move'

på samma rad som tidigare

134 ms totalt · 3 externa anrop · v20260731065814-full.363dfaf6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)