Just nu i M3-nätverket
Jump to content

ASPUpload och ASPJpeg


crokmaster

Recommended Posts

Hej!

Jag försöker tanka upp bilder och text till en access databas med hjälp av Persits.Upload och Persits.Jpeg. Först väljer jag i en dropdown under vilken kategori jag ska tanka upp bild och text under. Därefter beskärs bilden i två storlekar och skickar med en bildtext.

 

Detta fungerar fint tills jag försökte mig på att tanka upp fler än en bild.

I följande kod har jag försökt tanka upp två bilder samtidigt.

 

Får då följande felmeddelande:

Active Server Pages error 'ASP 0115'

 

Unexpected error

 

multiUpload.asp

 

A trappable error (C0000005) occurred in an external object. The script cannot continue running.

 

Här kommer koden.

 

mulit.asp

 

<FORM METHOD="POST" ACTION="multiUpload.asp" ENCTYPE="multipart/form-data" style="width:300px">
<%	Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DBQ=" & Server.Mappath("../") & ";Driver={Microsoft Access Driver (*.mdb)};"			

'lista alla objekt från husohem
Set RecSet = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM husohem ORDER BY boadress"
RecSet.Open sql, Connect, adOpenStatic, adLockOptimistic %>					

<select class="adminFormNoSpan" name="dropdownlist">
<option value="" selected>Välj först under vilket objekt</option>

<%	Do Until RecSet.EOF %>
<option value="<% =RecSet("id") %>"><% =RecSet("boadress") %></option>

<%	RecSet.MoveNext
Loop
RecSet.Close %>
</select>



<br><br>

	<div class="uploadDesc">Välj en bild (GIF, JPEG, BMP, PNG):</div>
	<INPUT style="font-weight:bold" class="forumBtn" TYPE="FILE" SIZE="40" NAME="uploadform"><p>
	<div class="uploadDesc">Bildtext:</div>
	<TEXTAREA style="width:260px" class="forumBtn" NAME="DESCR"></TEXTAREA><p>

	<div class="uploadDesc">Välj en bild (GIF, JPEG, BMP, PNG):</div>
	<INPUT style="font-weight:bold" class="forumBtn" TYPE="FILE" SIZE="40" NAME="uploadform2"><p>
	<div class="uploadDesc">Bildtext:</div>
	<TEXTAREA style="width:260px" class="forumBtn" NAME="DESCR2"></TEXTAREA><p>

<INPUT class="forumBtn" style="font-weight:bold" TYPE="SUBMIT" VALUE="Tanka upp!">
</FORM>

 

multiUpload.asp

 

<%
Set Upload = Server.CreateObject("Persits.Upload")

' Use AspJpeg to resize image
Set Jpeg = Server.CreateObject("Persits.Jpeg")

' Capture and save uploaded image to the same directory as script
Upload.Save Server.MapPath("../upload")


' Obtain file object
Set File = Upload.Files("uploadform")

If Not File Is Nothing Then
	' Build ODBC connection string
	Connection = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../")

	' Build SQL INSERT statement
	SQL = "INSERT INTO husbilder(image_blob, filename, description, filesize, husohem_id) VALUES(?, '"
	SQL = SQL & File.Filename & "', '"
	SQL = SQL & Replace(Upload.Form("DESCR"), "'", "''") & "', "
	SQL = SQL & File.Size
       SQL = SQL & ",'" & Replace(Upload.Form("dropdownlist"), "'", "''") & "')"

	' Save to database
	File.ToDatabase Connection, SQL
	Response.Write "<em>" & "Denna bild har laddats upp" & "</em>" & "<br>" & "<br>"
Else
	Response.Write "<em>" & "Ingen fil är vald." & "</em>" & "<br>" & "<br>"
End If

For Each File in Upload.Files
If File.ImageType <> "JPG" Then
	Response.Write "<div class='uploadFeed'>" & "Det här är inget gilltigt fil-format." & "</div>"
	File.Delete
	Response.End
End If

Jpeg.Open File.Path

uploadform = Upload.Form("uploadform")

If Jpeg.OriginalWidth > 1 Then
   Jpeg.Width = 420
   Jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth

Jpeg.Save Server.MapPath("../upload") & "\big_" & File.FileName

End If

' ------ Create thumbnail ---------
Jpeg.Width = 160
Jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth

Jpeg.Save Server.MapPath("../upload") & "\small_" & File.FileName



%>	
<IMG SRC="../upload/<% = "big_" & File.FileName %>">	<P>
<div class="husText"><% = Upload.Form("DESCR") %></div>

<%
Next
%>
<p>



<%
Set Upload2 = Server.CreateObject("Persits.Upload")

' Use AspJpeg to resize image
Set Jpeg2 = Server.CreateObject("Persits.Jpeg")

' Capture and save uploaded image to the same directory as script
Upload2.Save Server.MapPath("../upload")


' Obtain file object
Set File = Upload2.Files("uploadform2")

If Not File Is Nothing Then
	' Build ODBC connection string
	Connection2 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../inc/db.mdb")

	' Build SQL INSERT statement
	SQL2 = "INSERT INTO husbilder(image_blob2, filename2, description2, filesize2, husohem_id) VALUES(?, '"
	SQL2 = SQL2 & File.Filename2 & "', '"
	SQL2 = SQL2 & Replace(Upload2.Form("DESCR2"), "'", "''") & "', "
	SQL2 = SQL2 & File.Size
       SQL2 = SQL2 & ",'" & Replace(Upload.Form("dropdownlist"), "'", "''") & "')"

	' Save to database
	File.ToDatabase2 Connection2, SQL2
	Response.Write "<em>" & "Denna bild har laddats upp" & "</em>" & "<br>" & "<br>"
Else
	Response.Write "<em>" & "Ingen fil är vald." & "</em>" & "<br>" & "<br>"
End If

For Each File in Upload2.Files
If File.ImageType2 <> "JPG" Then
	Response.Write "<div class='uploadFeed'>" & "Det här är inget gilltigt fil-format." & "</div>"
	File.Delete
	Response.End
End If

Jpeg2.Open File.Path2

uploadform2 = Upload2.Form("uploadform2")

If Jpeg2.OriginalWidth > 1 Then
   Jpeg2.Width = 420
   Jpeg2.Height = Jpeg2.OriginalHeight * Jpeg2.Width / Jpeg2.OriginalWidth

Jpeg2.Save Server.MapPath("../upload") & "\big_" & File.FileName2

End If

' ------ Create thumbnail ---------
Jpeg2.Width = 160
Jpeg2.Height = Jpeg2.OriginalHeight * Jpeg2.Width / Jpeg2.OriginalWidth

Jpeg2.Save Server.MapPath("../upload") & "\small_" & File.FileName2



%>	
<IMG SRC="../upload/<% = "big_" & File.FileName2 %>">	<P>
<div class="husText"><% = Upload2.Form("DESCR2") %></div>

<%
Next
%>
<p>

<FORM METHOD="LINK" ACTION="multi.asp">
<INPUT class="forumBtn" style="font-weight:bold" TYPE="submit" VALUE="Tanka upp fler bilder?">
</FORM>

 

Är mycket tacksam om någon tog sig tid att titta på min kod och förklara för mig vad felet är!

 

 

 

Link to comment
Share on other sites

du har inget som säger att det kan vara flera bilder, utan det förutsätter att det end är en bild som laddas upp.

 

Du får lägga till en loop:

for each File in Upload.Form

Typ.

 

Se manualen på www.ASPupload.com

 

Link to comment
Share on other sites

Nja, visst har crokmaster med en for-loop. Dock så är väl kanske placeringen inte helt hundra. Dvs. "For Each File in Upload2.Files [...] Next" borde väl ligga innanför "If Not File Is Nothing Then [...] End if".

 

Vidare så känns inte ihop-kopplingen mellan aspjpeg (som sparar filerna i olika storlekar på disk) och aspupload som sparar filerna i db helt genomtänkt.

 

Dessutom så har du, crokmaster, "samma" kod två gånger vilket antagligen är anledningen till att det smäller. Om du skriver om koden i första delen (enligt ovan och manualen) samt tar bort upprepningen (typ från rad 70) och dessutom tänker till hur du vill att aspjpeg och aspupload skall fungera, så går det nog bra :-D

 

Här ser du ett kodexempel på hur du kombinerar AspJpeg med AspUpload för att ladda upp en bild samt spara den i två olika storlekar i en databas.

http://www.aspjpeg.com/manual_03.html#3_2

 

När du har fått det att fungera så kan du kapsla in huvudparten av koden i en for each-loop för att hantera flera filer.

 

/Cluster

I do not fear computers. I fear the lack of them

-> http://eforum.kicks-ass.net <-

 

 

[inlägget ändrat 2009-01-19 20:00:14 av Cluster]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...