Newsgroup: it.comp.www.asp
Titolo: un problema senza soluzione

Il mio problema puo' sembrare banale, ma ho provato in vari modi,
utilizzando email.AttachFile ed anche Scripting.FileSystemObject, senza
senza riuscire a risolverlo.
Ciň che vorrei ottenere č questo:
un utente si collega ad una determinata pagina e compila un form dove, tra
le altre cose, dichiara un nome di file che mi vuole spedire, ad esempio
testo.doc;
la posizione del file nel SUO computer č nota, per tutti gli utenti č la
medesima, ad esempio C:\dati\testo.doc;
questo file mediante cdonts dovrebbe essere spedito come allegato al mio
indirizzo di posta.
Come dicevo ho provato in varie maniere senza successo, so che FSO serve per
file che risiedono sul server e non č il mio caso, credevo di risolvere con
AttachFile ma non funziona.
Ora non so se č il metodo a non essere adeguato o se sto sbagliando io
qualcosa, chiarisco comunque che tolta la riga di codice inerente l'allegato
tutto funziona correttamente, form e spedizione della mail.
La riga in questione č la seguente:
    email.AttachFile(\\C:\dati\testo.doc)
oppure:
    Dim allegato
    allegato = request.form("form_allegato")
    email.AttachFile = allegato
AIUTATEMI, ci sto perdendo il sonno!
Vi ringrazio.

prima trasferire il file sul server, e poi lanciare una procedura (con
CDONTS?) per l'invio della mail con attach.
--
CIAO!
Gusher


ma questo non mi è possibile! :-(
a me serve un modo con il quale un qualsiasi utente che si collega spedisca
a me come allegato il file che decide di spedire (tutti gli utenti che
vorranno utilizzare questo servizio potrebbero predisporre una cartella come
da istruzioni che io gli darò, quindi il percorso sarà per tutti il medesimo
mentre la variabile sarà solo il nomefile).
Ma comunque... email.AttachFile non serve per spedire un file che si trova
nel computer e non sul server???? (non mi è ancora del tutto chiaro!).

>la posizione del file nel SUO computer è nota, per tutti gli utenti è la
ma il SUO computer è un client, mentre cdonts funziona sul server...
vedi cosa ti diceva gusher, prima un upload e poi, quando il file sta
sul server, un attach.
-- 
ben fatto, in fretta, economico: scegline due.


....devo quindi dedurre che ciň che vorrei fare (spiegato nel reply
precedente) non si possa fare con cdonts!!!
C'č altro modo per permettere che un utente mi alleghi un file presente sul
suo client???
Alle soglie dello sconforto!

suo client???
mah, potrebbe aprire il suo bel clientino di posta e usare l'opzione
che sicuramente sarà presente...
oppure puoi predisporre una form per l'upload.  
copioincollo qui di sotto una paginetta per l'upload che mi sono fatto
modificando leggermente l'esempio di qualcun altro, vedi tu e occhio
alle andate a capo.
<%
	' option explicit
	dim byteCount
	dim RequestBin
	dim UploadRequest
	Response.Buffer = true
%>
<%
Function BuildUpload(RequestBin)
	'Get the boundary
	PosBeg = 1
	PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
	boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
	boundaryPos = InstrB(1,RequestBin,boundary)
	'Get all data inside the boundaries
	Do until (boundaryPos=InstrB(RequestBin,boundary &
getByteString("--")))
		'Members variable of objects are put in a dictionary
object
		Dim UploadControl
		Set UploadControl =
CreateObject("Scripting.Dictionary")
		'Get an object name
		Pos =
InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
		Pos = InstrB(Pos,RequestBin,getByteString("name="))
		PosBeg = Pos+6
		PosEnd =
InstrB(PosBeg,RequestBin,getByteString(chr(34)))
		Name =
getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
		PosFile =
InstrB(BoundaryPos,RequestBin,getByteString("filename="))
		PosBound = InstrB(PosEnd,RequestBin,boundary)
		'Test if object is of file type
		If PosFile<>0 AND (PosFile<PosBound) Then
			'Get Filename, content-type and content of
file
			PosBeg = PosFile + 10
			PosEnd =
InstrB(PosBeg,RequestBin,getByteString(chr(34)))
			FileName =
getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
			'Add filename to dictionary object
			UploadControl.Add "FileName", FileName
			Pos =
InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
			PosBeg = Pos+14
			PosEnd =
InstrB(PosBeg,RequestBin,getByteString(chr(13)))
			'Add content-type to dictionary object
			ContentType =
getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
			UploadControl.Add "ContentType",ContentType
			'Get content of object
			PosBeg = PosEnd+4
			PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
			Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
			Else
			'Get content of object
			Pos =
InstrB(Pos,RequestBin,getByteString(chr(13)))
			PosBeg = Pos+4
			PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
			Value =
getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
		End If
		UploadControl.Add "Value" , Value     
		UploadRequest.Add name, UploadControl     
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
	Loop
 
End Function
%>
<%
Function getByteString(StringStr)
     For i = 1 to Len(StringStr)
          char = Mid(StringStr,i,1)
          getByteString = getByteString & chrB(AscB(char))
     Next
End Function
%>
<%
Function getString(StringBin)
     getString =""
     For intCount = 1 to LenB(StringBin)
          getString = getString &
chr(AscB(MidB(StringBin,intCount,1))) 
     Next
End Function
%>
<%
If request("Action")="1" then
     Response.Clear
     byteCount = Request.TotalBytes
 
     RequestBin = Request.BinaryRead(byteCount)
 
     Set UploadRequest = CreateObject("Scripting.Dictionary")
     BuildUpload(RequestBin)
 
     If UploadRequest.Item("blob").Item("Value") <> "" Then
          contentType = UploadRequest.Item("blob").Item("ContentType")
          filepathname = UploadRequest.Item("blob").Item("FileName")
          filename =
Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
 
          FolderName = UploadRequest.Item("where").Item("Value")
 
          'Path = Mid(Request.ServerVariables("PATH_TRANSLATED"), 1,
Len(Request.ServerVariables("PATH_TRANSLATED")) -
Len(Request.ServerVariables("PATH_INFO"))) & "\" 
          'ToFolder = Path & "\" & FolderName
 
          ToFolder = "d:\retrobottega\PacchiPronti\Immagini"
          value = UploadRequest.Item("blob").Item("Value")
          filename = ToFolder & "\" & filename
          Set MyFileObject =
Server.CreateObject("Scripting.FileSystemObject")
 
          Set objFile = MyFileObject.CreateTextFile(filename)
 
          For i = 1 to LenB(value)
               objFile.Write chr(AscB(MidB(value,i,1)))
          Next          
          objFile.Close
          Set objFile = Nothing
          Set MyFileObject = Nothing
 
          rw "Il file " & filename & " è stato uploadato."
 
          br 1
     End If
     Set UploadRequest = Nothing
End If
%>
<html>
<head>
</head>
<body bgcolor = white>
<form METHOD="POST" ENCTYPE="multipart/form-data"
action=QuestoFile.asp?Action=1" name="form1" id="form1">
<b>Seleziona un file da uploadare: </b>
<br>
<input TYPE="file" size = 50 NAME="blob" value>
<br>
<input TYPE="submit" NAME="Upload" Value="Uploada">
</form>
</body>
</html>



Già... parecchie :-)
Senti... non vorrei iniziare con un errore di questo tipo (ho provato a
eliminarle, ma su qualcuna ho dei dubbi!), ehm.... mi spediresti il listato
in allegato al mio indirizzo??? Fammi 'sto favore!
Ti ringrazio.