Nedenfor er en løsning, der virker! Den er ikke vildt pæn men det går forhåbentlig. Den hedder all_in_one.asp, kald den blot med det navn og det skulle være nemt derefter. Mailen, der sendes indeholder hverken billede eller er i HTML format - i stedet er der et link til all_in_one.asp, hvor billedet kan vises.
Der skal sættes nogle få ting op før det virker - de står i toppen af filen. Jeg bruger SA-FileUp, CDONTS og en Access database. Databasen har følgende tre felter
ID, AutoNumber, Primary Key
Pic, OLE Object
Email, Text
Koden kommer her - det er en "lang" fil!
<%@ Language=VBScript %>
<% Response.Buffer = True %>
<!--#include file="adovbs.inc" -->
<%
'-- Ændrer nedenstående tre linier
strConn = "DSN=Test;UID=;PWD=;"
strServer = "
http://www.test.dk/picapp/"strFrom = "postmaster@idontknow.dk"
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
select case CLng(Request.QueryString("ID"))
case 1
'-- Formen håndteres og gemmes i databasen
set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM PicTable WHERE 1=2", conn, adOpenDynamic,adLockPessimistic
set upl = Server.CreateObject("SoftArtisans.FileUp.1")
rs.AddNew
rs("Email") = upl.Form("Email")
upl.SaveAsBlob(rs("Pic"))
rs.Update
rs.Close
rs.Open "SELECT ID FROM PicTable ORDER BY ID DESC", conn
rs.MoveFirst
newID = rs("ID")
rs.Close
set rs = Nothing
set conn = Nothing
set upl = Nothing
Response.Write "All well<br>"
Response.Write "<a href=""all_in_one.asp?ID=2&PicID=" & newID & """>See input</a>"
case 2
'-- Det gemte vises
set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT Email, Pic FROM PicTable WHERE ID=" & CLng(Request.QueryString("PicID")), conn
rs.MoveFirst
%>
Email <% =rs("Email") %><br>
Picture: <img src="all_in_one.asp?ID=3&PicID=<% =CLng(Request.QueryString("PicID")) %>"><br><br>
<a href="all_in_one.asp?ID=4&PicID=<% =CLng(Request.QueryString("PicID")) %>">Send mail</a>
<%
set rs = Nothing
set conn = Nothing
case 3
'-- Billedet vises
Response.Clear
Response.ContentType = "image/gif"
set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM PicTable WHERE ID=" & CLng(Request.QueryString("PicID")), conn
rs.MoveFirst
Response.BinaryWrite rs("Pic")
rs.Close
set rs = Nothing
set conn = Nothing
Response.End
case 4
'-- Der sendes en email
set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM PicTable WHERE ID=" & CLng(Request.QueryString("PicID")), conn
rs.MoveFirst
set mail = Server.CreateObject("CDONTS.NewMail")
mail.From = strFrom
mail.To = rs("Email")
mail.Subject = "Billede modtaget"
mail.Body = "Se billede på " & strServer & "all_in_one.asp?ID=3&PicID=" & rs("ID")
mail.send
set mail = Nothing
rs.Close
set rs = Nothing
set conn = Nothing
Response.Write "Mail Sendt!!"
case else %>
<h1>Test</h1>
<form action="all_in_one.asp?ID=1" method="post" enctype="multipart/form-data">
Fil: <input type="file" name="file"><br>
Email <input type="text" name="email"><br>
<input type="submit">
</form>
<%
end select
%>
</BODY>
</HTML>
Kom endelig med kommentarer, hvis der er ting du har problemer med. Jeg er dog først tilbage onsdag aften... Held og lykke.
Mvh