webForumDet fria alternativet

Hall i er, men det ar nog inte sa svart!

ASP

18 svar · 452 visningar · startad av crisse6

Medlem sedan dec. 20002 526 inlägg
Frågan#1

Hej!

Forsoker gora sa att om man valt att ladda upp fil sa ska en kod koras annars inte. Far ej felmess men kommer bara tillbaka till samma sida som om det ar falt som inte ar ifyllda!
(lang)

<%
If session("usr") = "" then
response.redirect ("login_err.asp")
else
If request.querystring("forumID") = "" then
response.redirect "default.asp"
else

If request.form("title") = "" or request.form("text") = "" then
%>
<!--#include file="include_meny.asp" -->
<table cellpadding="0" cellspacing="0" width="100%" height="24">
    <tr>
        <td width="100%" background="meny/table_bar.gif" height="24">
            <p><font face="Verdana" size="1" color="white"><b>&nbsp;Skapa ny tråd</b></font></p>
        </td>
    </tr>
    <tr>
        <td width="100%">
<form name="thread" method="post" action="new_Thread.asp?forumID=<%=request.querystring("forumID")%>" enctype="multipart/form-data">
<table cellpadding="4" cellspacing="0" width="100%">
	<tr>
		<td width="20%" bgcolor="#e6e6e6"><font class="minitext">Inloggad som:</font></td><td width="70%" bgcolor="#f5f5f5"><font class="minitext"><%=session("usr")%></font></td></tr>
	<tr>
		<td width="20%" bgcolor="#e6e6e6"><font class="minitext">Ikon:</font></td><td width="70%" bgcolor="#f5f5f5"><input type="radio" name="ikon" value="ikoner/posted/1.gif" checked><img src="ikoner/posted/1.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/2.gif"><img src="ikoner/posted/2.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/3.gif"><img src="ikoner/posted/3.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/4.gif"><img src="ikoner/posted/4.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/5.gif"><img src="ikoner/posted/5.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/6.gif"><img src="ikoner/posted/6.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/8.gif"><img src="ikoner/posted/8.gif" width="16" height="16" border="0"><br><input type="radio" name="ikon" value="ikoner/posted/9.gif"><img src="ikoner/posted/9.gif" width="17" height="17" border="0"><input type="radio" name="ikon" value="ikoner/posted/10.gif"><img src="ikoner/posted/10.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/11.gif"><img src="ikoner/posted/11.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/12.gif"><img src="ikoner/posted/13.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/13.gif"><img src="ikoner/posted/14.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/14.gif"><img src="ikoner/posted/15.gif" width="15" height="15" border="0"><input type="radio" name="ikon" value="ikoner/posted/15.gif"><img src="ikoner/posted/16.gif" width="15" height="15" border="0"></td></tr>
	<tr>
		<td width="20%" bgcolor="#e6e6e6"><font class="minitext">Rubrik:</font></td><td width="70%" bgcolor="#f5f5f5"><input type="text" name="title" class="field"> <font class="minitext">(Ska vara relaterat till innehållet!)</font></td></tr>
	<tr>
		<td width="20%" bgcolor="#e6e6e6"><font class="minitext">Inlägg:</font></td><td width="70%" bgcolor="#f5f5f5"><TextArea Cols="30" Rows="6" Name="text" class="textbox"></TextArea></td></tr>
	<tr>
		<td width="20%" bgcolor="#e6e6e6"><font class="minitext">Bifoga fil:<br><font face="Verdana" size="1">Max storlek: 50000 bytes (50kb)
		</font></td><td width="70%" bgcolor="#f5f5f5"><input type="file" name="blob" class="field"><br><font face="Verdana" size="1">Tillåtna filtyper: gif jpg jpeg png zip rar txt</td></tr>
	<tr>
		<td width="20%" bgcolor="#e6e6e6"><font class="minitext">Forumregler:<br>HTML är <b>ej tillåtet</b><br>Anonyma inlägg är <b>ej tillåtet</b><br><a href="faq.asp?vad=smile" class="minilink" target="_blank">Smilies</a> är <b>tillåtet</b><br><a href="faq.asp?vad=forumkod" class="minilink" target="_blank">Forumkod</a> är <b>tillåtet</b><td width="70%" bgcolor="#f5f5f5"><input type="submit" value="Skapa tråd" class="knapp"></td></tr>
	</table>
    </form>
    <!--#include file="include_copyright.asp" -->
<%
else
Datum = Now()
forum = request.querystring("forumID")
dator = Request.ServerVariables("HTTP_USER_AGENT")

sql = "Insert into t_threads (f_title, f_dte, f_user, f_latest, f_by, f_answers, f_text, forumID, f_sessionsID, f_sys, f_ikon) " & _
" VALUES ('" & Replace(request.form("title"), "'", "''") & _
"',#" & Datum &"#, '" & session("usr") & "', #" &_
Datum &"#, '" & session("usr") &"', '0', '" & replace(request.form("text"), "'", "''")& "', "& forum &", "& session("sessionsID") &", '" & dator & "','" & request.form("ikon") &"')"
objConn.execute(sql),,128

set rs = objConn.execute("SELECT @@IDENTITY")
intNewID=rs(0)
sql3 = "update t_threads SET svarID = "& intNewID &" Where threadID = "& intNewID
objConn.execute(sql3),,128

sql2 = "update t_forum SET f_latest = #" & Datum & "#,"&_
"f_by = '" & session("usr") &"', f_threads = f_threads +1, f_posts = f_posts +1 Where forumID = " & forum
objConn.execute sql2,,128

sql4 = "select * from t_threads where svarID = "& intNewID
set rs2 = objConn.execute(sql4)

If NOT request.form("blob") = "" then

Randomize
Response.Expires=0
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

'Lite olika variabler

'Deklarerar variablen strMaxSize till 50000 bytes = 50 kb
strMaxSize = Request.TotalBytes

'strUsr är sessionsID:et
strUsr = "_"&session("sessionsID")

'strRandom skapar ett slumpat nummer
strRandom = CiNT(1-9000 * Rnd + 9000)

'strDt plockar ner datum
strDt = 	DatePart("m", Now())&"_"&_
		DatePart("d", Now())&"_"&_
		DatePart("yyyy", Now())

'strFile deklareras till formularfältet på default.asp
strFile = UploadRequest.Item("blob").Item("ContentType")

'I detta fall har vi bara .gif vi behöver oroa oss för och tar bara de 3 tecken från höger
strForm = Right(strFile,3)

'strAll kopplar ihop allting

strAll = strRandom&strDt&strUsr&"."&strForm
filename = Right(strAll,Len(strAll)-InstrRev(strAll,"\"))

value = UploadRequest.Item("blob").Item("Value")

'Skapar objekt
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Kollar om det är jpg eller gif fil om det stämmer, gå vidare
If strFile="image/pjpeg" OR strFile="image/gif" THEN

'Kollar nu med strMaxSize om den är större än 50kb, om inte, gå vidare
	If strMaxSize > 50000 then
		response.write "Bilden är för stor, "& strMaxSize &" bytes. Den får max vara 50000 bytes (50kb)."
	else

'Skapa och skriv fil
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("usrPics/"&filename))

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

MyFile.Close

response.write "<b>Filens sökväg:</b> " & Server.mappath("usrPics/"&filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""usrPics/" & filename & """>"

strSqlAddPic = "Insert into t_threads (f_bifogat) Values ('"& filename &"') Where threadID = "& intNewID
objConn.execute strSqlAddPic,,128

End IF
'Från If-satsen ovan så kommer här om det INTE är jpg eller gif fil
Else
response.write "Bilden måste vara av formatet .gif eller jpg."
End IF
%>
<!--#include file="upload.asp"-->
<%
response.redirect "read.asp?forumID="& rs2("forumID") &"&svarID="& rs2("svarID") &"&tradID="& rs2("threadID") &""
End IF
end if
End if
End If
%>
Medlem sedan jan. 20022 440 inlägg
#2

ARGH !! inte så mycket kod så tidigt!! :x Jag återkommer om en stund

Medlem sedan dec. 20002 526 inlägg
#3

Gor det snarast tack ;) Ar i behov av hjalp!!!

Medlem sedan mars 20015 287 inlägg
#4

Var är det som det knasar? Som sagt för mycket kod. =)

Medlem sedan dec. 20002 526 inlägg
#5

Det ar ju inga felmess, men det blir att den bara kor sidan igen som om man glomt ett falt.... eftersom formular och asp ligger pa samma sida...... :(

Medlem sedan dec. 20002 526 inlägg
#6

okey, delade upp det i tva sidor for att se mer av problemet.... Far object Required: " pa rad 4...

sa har ser koden som tar emot data ut:

[red]
<%
'Rad 4 ar den nedan har....
If UploadRequest.Item("title").Item("value") = "" or UploadRequest.Item("text").Item("value") = "" then
response.write "Title eller Text ar tomt!"
else

Datum = Now()
forum = "1"
dator = Request.ServerVariables("HTTP_USER_AGENT")

sql = "Insert into t_threads (f_title, f_dte, f_user, f_latest, f_by, f_answers, f_text, forumID, f_sessionsID, f_sys, f_ikon) " & _
" VALUES ('" & Replace(UploadRequest.Item("title").Item("value"), "'", "''") & _
"',#" & Datum &"#, '" & session("usr") & "', #" &_
Datum &"#, '" & session("usr") &"', '0', '" & replace(UploadRequest.Item("text").Item("value"), "'", "''")& "', "& forum &", "& session("sessionsID") &", '" & dator & "','" & UploadRequest.Item("ikon").Item("value") &"')"
objConn.execute(sql),,128

set rs = objConn.execute("SELECT @@IDENTITY")
intNewID=rs(0)
sql3 = "update t_threads SET svarID = "& intNewID &" Where threadID = "& intNewID
objConn.execute(sql3),,128

sql2 = "update t_forum SET f_latest = #" & Datum & "#,"&_
"f_by = '" & session("usr") &"', f_threads = f_threads +1, f_posts = f_posts +1 Where forumID = " & forum
objConn.execute sql2,,128

sql4 = "select * from t_threads where svarID = "& intNewID
set rs2 = objConn.execute(sql4)

If NOT UploadRequest.Item("blob").Item = "" then

Randomize
Response.Expires=0
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest RequestBin

'Lite olika variabler

'Deklarerar variablen strMaxSize till 50000 bytes = 50 kb
strMaxSize = Request.TotalBytes

'strUsr är sessionsID:et
strUsr = "_"&session("sessionsID")

'strRandom skapar ett slumpat nummer
strRandom = CiNT(1-9000 * Rnd + 9000)

'strDt plockar ner datum
strDt = 	DatePart("m", Now())&"_"&_
		DatePart("d", Now())&"_"&_
		DatePart("yyyy", Now())

'strFile deklareras till formularfältet på default.asp
strFile = UploadRequest.Item("blob").Item("ContentType")

'I detta fall har vi bara .gif vi behöver oroa oss för och tar bara de 3 tecken från höger
strForm = Right(strFile,3)

'strAll kopplar ihop allting

strAll = strRandom&strDt&strUsr&"."&strForm
filename = Right(strAll,Len(strAll)-InstrRev(strAll,"\"))

value = UploadRequest.Item("blob").Item("Value")

'Skapar objekt
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Kollar om det är jpg eller gif fil om det stämmer, gå vidare
If strFile="image/pjpeg" OR strFile="image/gif" THEN

'Kollar nu med strMaxSize om den är större än 50kb, om inte, gå vidare
	If strMaxSize > 50000 then
		response.write "Bilden är för stor, "& strMaxSize &" bytes. Den får max vara 50000 bytes (50kb)."
	else

'Skapa och skriv fil
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("usrPics/"&filename))

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

MyFile.Close

response.write "<b>Filens sökväg:</b> " & Server.mappath("usrPics/"&filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""usrPics/" & filename & """>"

strSqlAddPic = "Insert into t_threads (f_bifogat) Values ('"& filename &"') Where threadID = "& intNewID
objConn.execute strSqlAddPic,,128

End IF
'Från If-satsen ovan så kommer här om det INTE är jpg eller gif fil
Else
response.write "Bilden måste vara av formatet .gif eller jpg."
End IF
%>
<!--#include file="upload.asp"-->
<%
End IF
End IF
%>
Medlem sedan mars 20015 287 inlägg
#7

Du kan väl inte använda UploadRequest där? Det skapas ju inte för än längre ner i koden.

Medlem sedan dec. 20002 526 inlägg
#8

Men det ar nar jag kor enctype="multipart/form-data" pa formularsidan som det blir "tomma" falt pa texten och rubriken.... varfor? Hur ska jag gora pa sidan som tar emot data for att fa med informationen?

Medlem sedan juni 20019 024 inlägg
#9

Du kan inte använda både Request.Form och UploadRequest, du måste välja ett utav dem.

Nu ser jag inte hur upload-koden ser ut men det borde bli något i stil med UploadRequest.Item("form-fältets-namn")

Medlem sedan dec. 20002 526 inlägg
#10
<%
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
%>
[/red]

sa ser upload ut!

Medlem sedan dec. 20002 526 inlägg
#11

snalla ingen som vet hur man gor?

sa har ser borjan ut, men far Object Required: "

Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

strFormTitel = UploadRequest.Item("title").Item("Value")
Medlem sedan mars 20015 287 inlägg
#12

Jag tar mig friheten att citera Jojoxx ur en annan tråd:

Jojoxx skrev:

...Generellt tips i felsökningssynpunkt; börja med en enkel kontroll och bygg sedan ut den tills det slutar fungera, fixa det och bygg vidare. Du kommer att tjäna många timmars felsökande :)

Om det har fungerat från början, starta om där och bygg vidare, testa och bygg vidare.

Medlem sedan dec. 20002 526 inlägg
#13

men det funkar ju om jag inte anvander enctype...... men det maste jag ju for jag skickar ju fil......

kan man inte gora tva forms med en submit knapp? ;)

Medlem sedan dec. 20002 526 inlägg
#14

Hej igen!! Har nu fatt det att funka med formularen pa tidigare sida.... Men nagot gor att den inte fyller i nar jag bifogar fil, inga felmess!

[red]
<% Response.Buffer = True %>
<!--#include file="db_koppling.asp" -->
<%
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

Datum = Now()
forum = request.querystring("forumID")
dator = Request.ServerVariables("HTTP_USER_AGENT")

Randomize
Response.Expires=0
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
'har var objektet innan

BuildUploadRequest RequestBin

'Lite olika variabler

'Deklarerar variablen strMaxSize till 50000 bytes = 50 kb
strMaxSize = Request.TotalBytes

'strUsr är sessionsID:et
strUsr = "_"&session("sessionsID")

'strRandom skapar ett slumpat nummer
strRandom = CiNT(1-9000 * Rnd + 9000)

'strDt plockar ner datum
strDt = 	DatePart("m", Now())&"_"&_
		DatePart("d", Now())&"_"&_
		DatePart("yyyy", Now())
'#######################################################
strFormTitel = UploadRequest.Item("title").Item("Value")
strFormText = UploadRequest.Item("text").Item("Value")
strFormIkon = UploadRequest.Item("ikon").Item("Value")

If strFormTitel = "" or strFormText = "" then
response.write "Title eller Text ar tomt!"
else

sql = "Insert into t_threads (f_title, f_dte, f_user, f_latest, f_by, f_answers, f_text, forumID, f_sessionsID, f_sys, f_ikon) " & _
" VALUES ('" & Replace(strFormTitel, "'", "''") & _
"',#" & Datum &"#, '" & session("usr") & "', #" &_
Datum &"#, '" & session("usr") &"', '0', '" & replace(strFormText, "'", "''")& "', "& forum &", "& session("sessionsID") &", '" & dator & "','" & strFormIkon &"')"
objConn.execute(sql),,128

set rs = objConn.execute("SELECT @@IDENTITY")
intNewID=rs(0)
sql3 = "update t_threads SET svarID = "& intNewID &" Where threadID = "& intNewID
objConn.execute(sql3),,128

sql2 = "update t_forum SET f_latest = #" & Datum & "#,"&_
"f_by = '" & session("usr") &"', f_threads = f_threads +1, f_posts = f_posts +1 Where forumID = " & forum
objConn.execute sql2,,128

sql4 = "select * from t_threads where svarID = "& intNewID
set rs2 = objConn.execute(sql4)

If NOT UploadRequest.Item("blob").Item("value") = "" then
'#######################################################

'strFile deklareras till formularfältet på default.asp
strFile = UploadRequest.Item("blob").Item("ContentType")

'I detta fall har vi bara .gif vi behöver oroa oss för och tar bara de 3 tecken från höger
strForm = Right(strFile,3)

'strAll kopplar ihop allting

strAll = strRandom&strDt&strUsr&"."&strForm
filename = Right(strAll,Len(strAll)-InstrRev(strAll,"\"))

value = UploadRequest.Item("blob").Item("Value")

'Skapar objekt
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Kollar om det är jpg eller gif fil om det stämmer, gå vidare
If strFile="image/pjpeg" OR strFile="image/gif" THEN

'Kollar nu med strMaxSize om den är större än 50kb, om inte, gå vidare
	If strMaxSize > 50000 then
		response.write "Bilden är för stor, "& strMaxSize &" bytes. Den får max vara 50000 bytes (50kb)."
	else

'Skapa och skriv fil
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("usrPics/"&filename))

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

MyFile.Close

response.write "<b>Filens sökväg:</b> " & Server.mappath("usrPics/"&filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""usrPics/" & filename & """>"

strSqlAddPic = "Insert into t_threads (f_bifogat) Values ('"& filename &"') Where threadID = "& intNewID
response.write strSqlAddPic
objConn.execute strSqlAddPic,,128

End IF
'Från If-satsen ovan så kommer här om det INTE är jpg eller gif fil
Else
response.write "Bilden måste vara av formatet .gif eller jpg."
End IF
%>
<!--#include file="upload.asp"-->
<%
End IF
End IF
%>
Medlem sedan mars 20015 287 inlägg
#15

Vad menar du nu då? ;) Var fyller den inte i ? I databasen?

Medlem sedan aug. 20003 575 inlägg
#16

Försök att dela upp allt i funktioner så blir det lättare när man programmerar ! Lättare att hitta och ändra.

Medlem sedan dec. 20002 526 inlägg
#17

Okey.... ska ordna, aterkommer ;)

Medlem sedan dec. 20002 526 inlägg
#18

Hahhaha! Underbart! Gjorde lite "rensning" i koden, och vipps sa far man annat felmess, sql sats, mycket lattare sa nu har jag ordnat det, funkar prima!!!!!
fullstandig kod:

<!--#include file="db_koppling.asp" -->
<%
Response.Buffer = True
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

Datum = Now()
forum = request.querystring("forumID")
dator = Request.ServerVariables("HTTP_USER_AGENT")

Randomize
Response.Expires=0
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)

BuildUploadRequest RequestBin

'Deklarerar variablen strMaxSize till 50000 bytes = 50 kb
strMaxSize = Request.TotalBytes

'strUsr är sessionsID:et
	strUsr = "_"&session("sessionsID")

'strRandom skapar ett slumpat nummer
	strRandom = CiNT(1-9000 * Rnd + 9000)

'strDt plockar ner datum
	strDt = 	DatePart("m", Now())&"_"&_
				DatePart("d", Now())&"_"&_
				DatePart("yyyy", Now())

	strFormTitel = UploadRequest.Item("title").Item("Value")
	strFormText = UploadRequest.Item("text").Item("Value")
	strFormIkon = UploadRequest.Item("ikon").Item("Value")
	strFile = UploadRequest.Item("blob").Item("ContentType")
	strForm = Right(strFile,3)
	strAll = strRandom&strDt&strUsr&"."&strForm
	filename = Right(strAll,Len(strAll)-InstrRev(strAll,"\"))
	value = UploadRequest.Item("blob").Item("Value")

If strFormTitel = "" or strFormText = "" then
	response.write "Title eller Text ar tomt!"
else

	sql = "Insert into t_threads (f_title, f_dte, f_user, f_latest, f_by, f_answers, f_text, forumID, f_sessionsID, f_sys, f_ikon) " & _
	" VALUES ('" & Replace(strFormTitel, "'", "''") & _
	"',#" & Datum &"#, '" & session("usr") & "', #" &_
	Datum &"#, '" & session("usr") &"', '0', '" & replace(strFormText, "'", "''")& "', "& forum &", "& session("sessionsID") &", '" & dator & "','" & strFormIkon &"')"
	objConn.execute(sql),,128

set rs = objConn.execute("SELECT @@IDENTITY")
	intNewID=rs(0)
		sql3 = "update t_threads SET svarID = "& intNewID &" Where threadID = "& intNewID
objConn.execute(sql3),,128

		sql2 = "update t_forum SET f_latest = #" & Datum & "#,"&_
		"f_by = '" & session("usr") &"', f_threads = f_threads +1, f_posts = f_posts +1 Where forumID = " & forum
objConn.execute sql2,,128

		sql4 = "select * from t_threads where svarID = "& intNewID
set rs2 = objConn.execute(sql4)

If NOT strFile = "" then

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

'Kollar om det är jpg eller gif fil om det stämmer, gå vidare
	If strFile="image/pjpeg" OR strFile="image/gif" THEN

'Kollar nu med strMaxSize om den är större än 50kb, om inte, gå vidare
	If strMaxSize > 50000 then
		response.write "Bilden är för stor, "& strMaxSize &" bytes. Den får max vara 50000 bytes (50kb)."
	else

'Skapa och skriv fil
	pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
	Set MyFile = ScriptObject.CreateTextFile(Server.mappath("usrPics/"&filename))

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

MyFile.Close

response.write "<b>Filens sökväg:</b> " & Server.mappath("usrPics/"&filename) & "<br>"
response.write "<b>Filnamn:</b> " & filename & "<br><br>"
response.write "<img src=""usrPics/" & filename & """>"

'Satter in den uppladdade filen
	strSqlAddPic = "Update t_threads Set f_bifogat = '"& filename &"' Where threadID = "& intNewID &""
			response.write strSqlAddPic
objConn.execute strSqlAddPic,,128

End IF
'Från If-satsen ovan så kommer här om det INTE är jpg eller gif fil
Else
response.write "Bilden måste vara av formatet .gif eller jpg."
End IF
End IF
End IF
%>
<!--#include file="upload.asp"-->
Medlem sedan mars 20015 287 inlägg
#19

Helt enkelt lysande! :)

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