webForumDet fria alternativet

Uploadscript utan komponent

307 svar · 16 553 visningar · startad av OveRRidE · sida 11 av 16

MeleaMedlem sedan juli 20033 147 inlägg
#201

Fast nu så går det inte o uploada alls pga. att If satsen utförs även om det inte finns en fil i katalogen..

k0ffeMedlem sedan maj 2003352 inlägg
#202

solbulle >> Det var skitsamma med det felet...

Jaha, haha, nejdå. Tyckte inte att det var någon riktig hjälp när jag själv inte riktigt förstod vad jag ville ha hjälp med... lr nåt :)

solbulleMedlem sedan mars 20015 287 inlägg
#203

Melea: Anledningen till att dety inte fungerar är väl att du gör kollen efter att du laddat upp filen...

Du lär väl till att behöva sätta den där kollen innan du laddar upp den nya filen.
Flytta upp kollen med FSO till precis under denna rad:

Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

k0ffe: Hmm.

solbulleMedlem sedan mars 20015 287 inlägg
#204
<!-- #include file="../../data.inc" -->
<%

Response.Expires=0
Response.Buffer = TRUE
Response.Clear
'Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
byteCount = Request.TotalBytes
'Response.BinaryWrite(Request.BinaryRead(varByteCount))

RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

username =  UploadRequest.Item("username").Item("Value")
info =  UploadRequest.Item("info").Item("Value")
player1 =  UploadRequest.Item("player1").Item("Value")
player2 = UploadRequest.Item("player2").Item("Value")
player1race = UploadRequest.Item("player1race").Item("Value")
player2race = UploadRequest.Item("player2race").Item("Value")
map = UploadRequest.Item("map").Item("Value")

contentType = UploadRequest.Item("filename").Item("ContentType")
filepathname = UploadRequest.Item("filename").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("filename").Item("Value")

'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

If ScriptObject.FileExists(server.mappath(("/Creative/warcraft/replays/" & filename)) then

Session("fel") = "Det finns redan en replay med det namnet"
Response.Redirect "../admin.asp?login=yes&add=replay"

Else

'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
' Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&filename)
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/Creative/warcraft/replays/" & filename))

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={MySQL ODBC 3.51 Driver};server="&strserver&";uid="&struser&";pwd="&strpass&";database="&strdb&"" 

	sql = "insert into wc3_replay (filename, username, info, player1, player2, player1race, player2race, map, datum) values ('" & filename & "', '" & username & "', '" & info & "','" & player1 & "','" & player2 & "', '" & player1race & "','" & player2race & "','" & map & "','" & datum & "')"
	Connect.Execute(sql),,128

	Connect.Close : Set objConnect = Nothing

MyFile.Close

End If
Response.Redirect "../admin.asp?login=yes&add=replay"

Sub BuildUploadRequest(RequestBin)
'Get the boundary
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Test if object is of file type
If PosFile<>0 AND (PosFile<PosBound) Then
'Get Filename, content-type and content of file
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
'Add filename to dictionary object
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'Add content-type to dictionary object
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
'Get content of object
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
'Get content of object
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
'Add content to dictionary object
UploadControl.Add "Value" , Value 
'Add dictionary object to main dictionary
UploadRequest.Add name, UploadControl 
'Loop to next object
  BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop

End Sub

'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function

'Byte string to string conversion
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1))) 
Next
End Function
%>
MeleaMedlem sedan juli 20033 147 inlägg
#205

Det var där jag la koden men det funkar fortfarande inte...

solbulleMedlem sedan mars 20015 287 inlägg
#206

Ok... jag tyckte inte det såg ut som det, jag trodde du hade gjort som du visade här: http://www.webforum.nu/showthread.php?s=&postid=683135#post683135

MeleaMedlem sedan juli 20033 147 inlägg
#207

Hm, jag flyttade om koden lite själv efteråt.. men de funkade inte :OO

MeleaMedlem sedan juli 20033 147 inlägg
#208

Jahapp, tar upp en gammal tråd :-)

Skulle vilja ha så man kan uploada GIF filer också.. just nu har jag den här koden:

If NOT contentType="image/pjpeg" THEN
Session("fel") = "Det måste vara JPG!"
Response.Redirect "../admin.asp?login=yes&show=picture&editID=" & editID & " "
End If
MeleaMedlem sedan juli 20033 147 inlägg
#209

Vore också bra om man kunde byta namn på filen automatiskt när man uploadar den till sitt ID

MeleaMedlem sedan juli 20033 147 inlägg
#210

Har fått svar på de här 2 senaste frågorna, nevermind :P

k0ffeMedlem sedan maj 2003352 inlägg
#211

Flera bilder!

Jag har ett litet problem, om man vill ladda upp flera bilder med hjälp av detta skript, hur ska man då gå tillväga? Har prövat lite olika saker men utan att lyckas...

Den som är inloggad ska kunna skapa ett nytt "galleri", först skriva en rubrik för galleriet, som sedan ska länka till bilderna som skribenten efter att ha skrivit rubriken skall kunna ladda upp.

Hoppas nån förstod vad jag menar.

solbulleMedlem sedan mars 20015 287 inlägg
k0ffeMedlem sedan maj 2003352 inlägg
#213

Ja, jo, men hur får man in resten? Det är ju samma script, bara att du inte är tvungen att ladda upp en bild för att gå vidare?

Utförligare förklaring uppskattas...

k0ffeMedlem sedan maj 2003352 inlägg
#214

*host*
Glöm det jag skrev...

solbulleMedlem sedan mars 20015 287 inlägg
#215

Jag förstår inte frågan.

k0ffeMedlem sedan maj 2003352 inlägg
#216

Hur gör jag nu för att få in bildernas namn i databasen? Eftersom alla heter "Filename" blev jag lite förvirrad...

Exempel:

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0; "&_
"Data Source="&Server.MapPath("ncjcj")

SQLStmt = "INSERT INTO bildarkiv (nyh_bild1, nyh_bild2, rubrik, forfattare) "
SQLStmt = SQLStmt & "VALUES('" & filename & "', '" & filename & "', '" & rubrik & "', '" & Session("Namn") & "') "

Set RS = Connection.Execute(SQLStmt)

solbulleMedlem sedan mars 20015 287 inlägg
#217

Är det andra fält än just filen så har ju de fälten andra namn...
Annars om du kör varianten med en loop så kanske du kan lägga filnamnet i olika variabelnamn för varje varv loopen gör... Lite luddigt kanske..

k0ffeMedlem sedan maj 2003352 inlägg
#218

Ok, men jag gjorde på ett annat sätt.
Jag skapade en ny tabell för bara bilderna, så dom får läggas till med separat ID i en egen tabell.

Problemet är ju bara det, att när jag nu har rubrik, forfattare etc i en tabell, och själva bilderna i en annan, så följer ju inte bilderna med som dom ska med querystring.

T.ex

Rubrik 1 - 7 bilder (2 bilder)
Rubrik 2 - 5 bilder (3 bilder)
Rubrik 3 - 2 bilder

Är du med solis?

solbulleMedlem sedan mars 20015 287 inlägg
#219

Det är helt klart för varmt för mig idag...

Men om det är som så att du har flera bilder till en artikel/rubrik så tycker jag att en relationstabell är en bra lösning.

tblartikelbild

id - bildid - rubrikid

k0ffeMedlem sedan maj 2003352 inlägg
#220

Ok, det har jag försökt med, utan att lyckas :(

Den ena tabellen heter bildarkiv.

forfattare rubrik arkiv datum

Och den andra heter visa_bild.

bild ID datum

Jag vet inte hur jag ska få till det...

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