> Faqs > Enviar un archivo por mail desde un formulario con ASP

Enviar un archivo por mail desde un formulario con ASP

Tengo un problema que no se solucionar... (snif)
Intento que un visitante a mi web me mande POR CORREO un archivo de su PC (su currículum) por medio de un formulario an ASP.
Tengo en el servidor (externo) al AspEmail i el AspUpload (de Persits)
En el .ASP que envia los datos hago varios Request.Form("xxxx") pero... y he aquí mi problema: Como he de definir el FORMULARIO como ENCTYPE="multipart/form-data" segun entiendo en el manual de AspUpload (por cierto ¿alguien lo tiene en castellano?), no me reconoce los Request.Form y me da el error:

Request object error 'ASP 0207 : 80004005'
Cannot use Request.Form
/ASP/EnviaFormulario.asp, line 10
Cannot use Request.Form collection after calling BinaryRead.
Si valido las entradas ("la casilla nombre no puede estar vacia...etc...") al ejecutarse el .ASP que envia los datos, me da siempre el error que tengo definido (la casilla nombre ...) ya que no ejecuta el Request.Form de "nombre" aunque no está vacia...
En fin, no se si me he explicado bien...

Alguien puede explicarme como puedo hacer ésto de que alguien me mande de SU PC un determinado arxhivo por e_mail generado por MI formulario?

Respuestas

Cuando utilizas el ASPUploap tienes varios puntos a tomar en cuenta,

  • Debes utilizar la directiva como lo mencionas ENCTYPE="multipart/form-data" en el formulario ciertamente.

  • Los datos deben ser enviados por POST, (ojo no puede ser la misma, debe ser una página diferente quien recoja los datos)

  • Y por último no puedes recoger esos datos con la instrucción “Request.Form” en vez de ello debes hacer lo siguiente:

    ‘declaras esta variable
    Dim mySmartUpload
    Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") ‘y sacas la instancia
    mySmartUpload.Upload ‘esta es la línea clave con la que luego empezaras a recoger los valores, sin ésta línea nada funciona.

    Para los casos en que desees subir archivos al servidor se realizaría de ésta forma:

    strSaveFile = Server.MapPath("tu_ruta”)
    strSaveFile = strSaveFile & "" & mySmartUpload.Files(1).FileName
    mySmartUpload.Files(1).SaveAs(strSaveFile)

    Y para recoger los valores de los demás objetos, como el Hidden, Text, Button y Combos se realizan de esta manera

    variable = mySmartUpload.form("titulo")

    Y por ultimo una vez que termines de recoger los valores, vuelas el objeto de memoria

    Set mySmartUpload = Nothing

Vega Eudy