webForumDet fria alternativet

AspUpload problem (filer)

2 svar · 321 visningar · startad av corona

coronaMedlem sedan feb. 200470 inlägg
#1

Hej!

Jag har ett problem när jag ska ladda upp två bilder (låg- resp. högupplöst) till en bildbank. Vad som händer är att bild nr.2 (tryck) skriver över bild nr.1 (webb). Vet inte vad för fel jag gör i min kod, men blir glad om någon kan titta och säga vad som är fel.
Det skapas två bildfiler men båda är bild nr.2.
Mitt formulär:

<form method="post" enctype="multipart/form-data" action="laggtill_steg3.asp">
   <input type="hidden" name="id" value="<%=IDbild%>">
      <table border="0" cellpadding="2" cellspacing="0" width="96%" class="sidor">
<tr>
      <td class="adminrubrik" width="20%">
     Lågupplöst (webb)</td>
      <td class="adminrubrik">
     <input type="file" name="bildwebb" size="20" style="width:350px"></td>
    </tr>
    <tr>
      <td class="adminrubrik" width="20%">
     Högupplöst (tryck)</td>
      <td class="adminrubrik">
     <input type="file" name="bildtryck" size="20" style="width:350px"></td>
    </tr></table>
</form>

Min kod:

Set upload   = Server.CreateObject("Persits.Upload.1")

	intCount = Upload.Save
		
	actualName   = upload.Form("id")
	Session("ID") = actualName

	if intCount = 0 then
    ' inga filer 
    response.redirect "laggtill_steg2.asp?Fil=Fel&ID=" & actualName
	end if

	' Ladda in bild för webb
	Set File  = upload.Form("bildwebb")
	
	For Each File in Upload.Files

	If File.ImageType <> "GIF" and File.ImageType <> "JPG" Then
	Response.Redirect "laggtill_steg2.asp?Bild=Typ&ID=" & actualName
	Exit For
	End If 

	extension="." & LCase(File.Imagetype)
	
	FileName = actualName & "_webb" & extension
	
	FileWidth = File.ImageWidth
	FileHeight = File.ImageHeight
	

	File.SaveAs "c:\inetpub\wwwroot\BILDBANK\bilder\" & actualName & "_webb" & File.ext
		Next 

	
	' Ladda in bild för tryck
	Set File2  = upload.Form("bildtryck")
		
	For Each File2 in Upload.Files

	If File2.ImageType <> "GIF" and File2.ImageType <> "JPG" Then
	Response.Redirect "laggtill_steg2.asp?Bild=Typ&ID=" & actualName
	Exit For
	End If 

	extension="." & LCase(File2.Imagetype)
	
	FileName2 = actualName & "_tryck" & extension
	
	FileWidth2 = File2.ImageWidth
	FileHeight2 = File2.ImageHeight

	File2.SaveAs "c:\inetpub\wwwroot\BILDBANK\bilder\" & actualName & "_tryck" & File2.ext
	Next 

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Addera = "SELECT * FROM Bilder WHERE ID = " & actualName & ""
	RecSet.Open Addera, DB, adOpenStatic, adLockOptimistic

	RecSet("BildWebb") = FileName
	RecSet("BildWebbWidth") = FileWidth
	RecSet("BildWebbHeight") = FileHeight
	RecSet("BildTryck") = FileName2
	RecSet("BildTryckWidth") = FileWidth2
	RecSet("BildTryckHeight") = FileHeight2

	RecSet.Update
	RecSet.Close
	Set RecSet = Nothing

//Annette

J.N.Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Tycker det ser rätt ut, du har olika fält, du skapar två objekt och filnamn. :)

Varför gör du For Each File2 in Upload.Files; det finns väl endast en? Tror dock inte att detta gör felet du har, för att lösa det råder jag dig till att kontrollera att du verkligen kör båda .Save osv.

EclipseMedlem sedan juli 20003 825 inlägg
#3
Addera = "SELECT * FROM Bilder WHERE ID = " & actualName & ""

Du verkar ha ett rätt rörigt upplägg...

Ett ID kan ju inte vara ett namn! Det är ju en siffra som är unik för varje bild.

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