"Anders Druedahl Bruun" <druedahl@ofir.dk> wrote in message
news:4727989a$0$90276$14726298@news.sunsite.dk...
> Jeg ønsker en funktion hvor brugeren kan uploade billeder.
> Billederne skal så sende til mig i en mail! Jeg har forsøgt mig
> med et script fra html.dk (
http://www.html.dk/scripts/asp/00003/)
> "Script med vedhæftet fil" men jeg kan ikke se hvordan det skulle
> kunne virke.. Er der nogen der har nogle ider til hvordan jeg kan
> få løst mit problem!?? Mange tak
>
> Anders
Fandt noget kode som jeg brugte i "gamle dage", som dog benytter JMail
(gratis):
I filen du sender fra benyter du denne form:
<FORM Name="UpdatePOI" METHOD="POST" ENCTYPE="multipart/form-data"
ACTION="result.asp" onSubmit="return checkform()"><TABLE width="505"
border="0" cellpadding="2" cellspacing="0">
<tr>
<td width="132" align="right">Brugernavn: </td>
<td width="365"> <b>
</b>
<input name="Username" type="hidden"
class="txtbox" id="Brugernavn" value="" size="35" maxlength="100"></td></tr>
<tr>
<td align="right">Email: </td>
<td><b>
</b><input name="Email"
type="hidden" class="txtbox" id="Email" size="40" value=""></td>
</tr>
<tr>
<td align="right">Opdateret Fil: </td>
<td> <INPUT NAME="FILE1" TYPE=FILE class="txtbox" SIZE=40></td></tr>
<tr>
<td align="right" valign="top">Beskrivelse: </td>
<td><textarea name="Text" cols="40" rows="5" class="txtbox"
id="Text"></textarea></td>
</tr>
<tr align="center">
<td colspan="2"> <input type=hidden name="saveto"
value="disk" checked>
<INPUT TYPE=SUBMIT name="send" class="txtbox" VALUE="send"></td>
</tr>
</TABLE></FORM>
Og result.asp som den bruger til action:
<%
'***************************************
' File: Upload.asp
' Author: Jacob "Beezle" Gilley
' Email: avis7@airmail.net
' Date: 12/07/2000
' Comments: The code for the Upload, CByteString,
' CWideString subroutines was originally
' written by Philippe Collignon...or so
' he claims. Also, I am not responsible
' for any ill effects this script may
' cause and provide this script "AS IS".
' Enjoy!
'****************************************
Class FileUploader
Public Files
Private mcolFormElem
Private Sub Class_Initialize()
Set Files = Server.CreateObject("Scripting.Dictionary")
Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
End Sub
Private Sub Class_Terminate()
If IsObject(Files) Then
Files.RemoveAll()
Set Files = Nothing
End If
If IsObject(mcolFormElem) Then
mcolFormElem.RemoveAll()
Set mcolFormElem = Nothing
End If
End Sub
Public Property Get Form(sIndex)
Form = ""
If mcolFormElem.Exists(LCase(sIndex)) Then Form =
mcolFormElem.Item(LCase(sIndex))
End Property
Public Default Sub Upload()
Dim biData, sInputName
Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
Dim nPosFile, nPosBound
biData = Request.BinaryRead(Request.TotalBytes)
nPosBegin = 1
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
If (nPosEnd-nPosBegin) <= 0 Then Exit Sub
vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
nDataBoundPos = InstrB(1, biData, vDataBounds)
Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))
nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
nPos = InstrB(nPos, biData, CByteString("name="))
nPosBegin = nPos + 6
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
nPosBound = InstrB(nPosEnd, biData, vDataBounds)
If nPosFile <> 0 And nPosFile < nPosBound Then
Dim oUploadFile, sFileName
Set oUploadFile = New UploadedFile
nPosBegin = nPosFile + 10
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
oUploadFile.FileName = Right(sFileName,
Len(sFileName)-InStrRev(sFileName, "\"))
nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
nPosBegin = nPos + 14
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin,
nPosEnd-nPosBegin))
nPosBegin = nPosEnd+4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName),
oUploadFile
Else
nPos = InstrB(nPos, biData, CByteString(Chr(13)))
nPosBegin = nPos + 4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add
LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
End If
nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData,
vDataBounds)
Loop
End Sub
'String to byte string conversion
Private Function CByteString(sString)
Dim nIndex
For nIndex = 1 to Len(sString)
CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
Next
End Function
'Byte string to string conversion
Private Function CWideString(bsString)
Dim nIndex
CWideString =""
For nIndex = 1 to LenB(bsString)
CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
Next
End Function
End Class
Class UploadedFile
Public ContentType
Public FileName
Public FileData
Public Property Get FileSize()
FileSize = LenB(FileData)
End Property
Public Sub SaveToDisk(sPath)
Dim oFS, oFile
Dim nIndex
If sPath = "" Or FileName = "" Then Exit Sub
If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"
Set oFS = Server.CreateObject("Scripting.FileSystemObject")
If Not oFS.FolderExists(sPath) Then Exit Sub
Set oFile = oFS.CreateTextFile(sPath & FileName, True)
For nIndex = 1 to LenB(FileData)
oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
Next
oFile.Close
End Sub
Public Sub SaveToDatabase(ByRef oField)
If LenB(FileData) = 0 Then Exit Sub
If IsObject(oField) Then
oField.AppendChunk FileData
End If
End Sub
End Class
'NOTE - YOU MUST HAVE VBSCRIPT v5.0 INSTALLED ON YOUR WEB SERVER
' FOR THIS LIBRARY TO FUNCTION CORRECTLY. YOU CAN OBTAIN IT
' FREE FROM MICROSOFT WHEN YOU INSTALL INTERNET EXPLORER 5.0
' OR LATER.
' Create the FileUploader
Dim Uploader, File
Set Uploader = New FileUploader
' This starts the upload process
Uploader.Upload()
'******************************************
' Use [FileUploader object].Form to access
' additional form variables submitted with
' the file upload(s). (used below)
'******************************************
Response.Write "Tak for den opdaterede fil, <b>" & Uploader.Form("Username")
& "</b>...<br>"
' Check if any files were uploaded
If Uploader.Files.Count = 0 Then
Response.Write "File(s) not uploaded."
Else
' Loop through the uploaded files
For Each File In Uploader.Files.Items
' Check where the user wants to save the file
If Uploader.Form("saveto") = "disk" Then
' Save the file
File.SaveToDisk "E:\inetpub\wwwroot\Domains\"
End If
Dim objJMail, strBody, basePath
basePath = "E:\inetpub\wwwroot\Domains\"
Set objJMail = Server.CreateObject("JMail.SMTPMail")
With objJMail
'Out going SMTP mail server address
.ServerAddress = "xxx.xx.xx.xx:xx"
'Who the e-mail is from
.Sender = Uploader.Form("Email")
.SenderName = Uploader.Form("Username")
'Who the e-mail is sent to
.AddRecipient "email@mail.dk"
.AddAttachment basePath & File.FileName
'The subject of the e-mail
.Subject = "Nyt fil"
'.ContentType = "text/html"
.Body = Uploader.Form("Text")
.Priority = 1
'Send the e-mail
'If NOT strIncomingMailServer = "" Then
.Execute
End With
'Close the server mail object
Set objJMail = Nothing
Next
End If
%>
Beklager, koden er taget næste direkte fra mine gamle sider, så der skal nok
ryddes lidt op...
Se om du kan få det til at virke...
--
Thrane