webForumDet fria alternativet

posta även ifall formuläret är tomt

ASP

9 svar · 411 visningar · startad av sin_adec

Medlem sedan apr. 2002272 inlägg
Frågan#1

tjenare..
jag försöker nämligen göra så att man ska kunna lägga upp bilder och att allt sparas i databasen. Det fungerar bra, förutom ifall man har möjlighet att lägga till sex bilder fast endast har en bild att lägga upp, då blir de andra formulärerna toma, och då fungerar det inte.

så försökte jag mig på, något som inte alls fungerar, här är senaste koden.


mina formulär heter filen, filen1, filen2 och så vidare fram till filen6.

<% 
' nedan publicear bilden för första bilden
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SetMaxSize 100000  ' Ändra maxstorlek på uppladdad fil
Upload.SaveVirtual "bilder/" ' Mappen som uppladdade filer hamnar i
Upload.OverwriteFiles = True  ' Sätt till False om du inte vill spara över filer med samma namn

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databasen.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From filer"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

	RecSet.AddNew	
	
	Recset("datum") = Date()

	Recset("bildone") = Upload.Files(1).ExtractFileName
	Recset("bildtwo") = Upload.Files(2).ExtractFileName
	if Upload.Files(3).ExtractFileName ="" then
	else
	Recset("bildthree") = Upload.Files(3).ExtractFileName
	end if
	if Upload.Files(4).ExtractFileName ="" then
	else
	Recset("bildfour") = Upload.Files(4).ExtractFileName
	end if
	if Upload.Files(5).ExtractFileName ="" then
	else
	Recset("bildfive") = Upload.Files(5).ExtractFileName
	end if
	if Upload.Files(6).ExtractFileName ="" then
	else
	Recset("bildsix") = Upload.Files(6).ExtractFileName
	end if
	
 	RecSet.Update
	RecSet.close
	
    Connect.Close
	Set RecSet = nothing
	Set Connect = nothing
%>
Medlem sedan mars 20034 471 inlägg
#2

Idé: Kolla om det står något i textfältet först och OM det gör det så försöker du ladda up filen.

Medlem sedan dec. 19996 721 inlägg
#3

Du måste kolla Upload.Files.Count innan du börjar att hämta ut filerna. Mn kan inte hämta Upload.Files(4) och det inte finns så många filer.

En enkel variant är ju att du loopar

for i=1 to Upload.Files.Count
filename=Upload.Files(i).ExtractFileName
colname=""
select case i
   case 1
      colname="bildone"
   case 2
      colname="bildtwo"

etc.

end select
Recset(colname)=filename

next
Medlem sedan apr. 2002272 inlägg
#4

så hur blir den fullständiga koden.. ledsen att jag frågar, kan verka korkat :(

Medlem sedan dec. 19996 721 inlägg
#5

Nu såg jag hur du namngivit fälten också, så då blir det lämpligare att skriva

if not Upload.Files("filen") is nothing then
   Recset("bildone") = Upload.Files("filen").ExtractFileName
end if

if not Upload.Files("filen2") is nothing then
   Recset("bildtwo") = Upload.Files("filen2").ExtractFileName
end if

osv.

Medlem sedan apr. 2002272 inlägg
#6

emission, jag vill tacka dig för hjälpen, otroligt sjyst av dig att hjälpa mig.

det konstiga är nu att jag avslutar min kod på följande sätt:

	
 	RecSet.Update
	RecSet.close
	
    Connect.Close
	Set RecSet = nothing
	Set Connect = nothing

Response.Redirect  "information.asp?about=genomfor"

%>

när jag har response.redirect "default.asp"
då fungerar det.
fast när jag har response.redirect "information.asp?about=genomfor" då får jag upp sidan kan inte visas.
någon som har stött på problemet tidigare?.

Medlem sedan dec. 19996 721 inlägg
#7

Fungerar det att gå direkt till sidan information.asp?about=genomfor ? Om sidan finns så låter som om du har "egna felmeddelanden" påslagna i Internet Explorer. Använd en annan webbläsare, eller avaktivera dessa felmeddelanden under IE:s inställningar (Friendly Errors).

Medlem sedan apr. 2002272 inlägg
#8

tack, på Internet explorer fick jag bara sidan kan ej visas och då testade jag med Mozilla och då fick jag upp felmeddelandet

jag glömde ha med ett par request.querystring.

Medlem sedan apr. 2002272 inlägg
#9

finns det något sätt som man kan få fram id numret från posten man just sparat i databasen.

för jag vill nämligen att den ska vara med på min:

Response.Redirect  "information.asp?about=genomfor"

så att det blir typ:

Response.Redirect  "information.asp?about=genomfor&refnummer= id numret från posten man just publicerat"
Medlem sedan apr. 2002272 inlägg
#10

hittade lösningen.

palle har publicerat det tidigare.
här är hans kod:

...gör insert här..

'Hämta ID
Set RecSet = Connect.Execute("SELECT @@IDENTITY")
   intCurrentId = RecSet(0)
   RecSet.Close
Set RecSet = Nothing

Response.Redirect "sida.asp?id="& intCurrentId
603 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
442 ms — deklarationer (db)
0 ms — hämta statistik (cache)
158 ms — hämta tråd, inlägg och bilagor (db)
442 ms — ändringar (db)