Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421

    Non riesco a inviare l'allegato

    Chiedo scusa se posto ancora messaggi sull'oggetto SmtpMail, ma ho un bisogno urgente di risolvere questo problema:

    Ricapitoliamo tutto!
    Possiedo un webform, in cui è presente il controllo HtmlInput dal quale l'utente sceglie un file e premendo il tasto "invia" invia un email con allegato il file da lui scelto a un determinato indirizzo di posta elettronica!

    A livello HTML il tag di apertura del form l'ho così impostato:

    [CODE]
    <form id="Form1" method="post" enctype="multipart/form-data" runat="server">
    [*CODE]

    Ho così impostato il tag, in quanto sulla documentazione di Visual Studio ho letto (testualmente):

    Utilizzare il controllo server HtmlInputFile per gestire il caricamento di file binari o di testo da un browser client in un server. Il caricamento dei file è attivo in Microsoft Internet Explorer versione 3.02 o successive.

    Nota Questa classe funziona solo se la proprietà Enctype di un controllo HtmlForm è impostata su multipart/form-data.
    Inoltre, il controllo HtmlInputFile, l'ho dichiarato in questo modo:
    codice:
    <INPUT id="txtArticolo" type="file" runat="server">
    Nell'evento click del bottone, infine, ho inserito questo codice:
    codice:
    Dim strTesto As String
    Dim messaggio As MailMessage
    
    'Scrive il testo del messaggio
       If Not IsNothing(txtArticolo.PostedFile) Then
          Try
             Dim allegato = New MailAttachment(txtArticolo.Value)
             strTesto = "" & strUtente & " ha inviato un articolo"
             messaggio = New MailMessage()
             messaggio.Attachments.Add(allegato)
             messaggio.BodyFormat = MailFormat.Html
             messaggio.From = strMail
             messaggio.To = "yyyyyy@xxxxxx"
             messaggio.Subject = "ARTICOLO"
             messaggio.Body = strTesto
             SmtpMail.SmtpServer = "smtp.aruba.it"
             SmtpMail.Send(messaggio)
          Catch ex As Exception
             lblMessaggio.ForeColor = Color.Blue
             lblMessaggio.Text = "ERRORE DEL SERVER: " & ex.Message & "
    "
             lblMessaggio.Text &= "OGGETTO: " & ex.Source
             lblMessaggio.Visible = True
          End Try
      Else
          lblMessaggio.Text = "Specificare l'articolo da allegare!"
          lblMessaggio.Visible = True
      End If
    Adesso, se carico la pagina sul server web di Aruba, nel momento in cui premo il tasto invia, viene visualizzata quest'errore:

    ERRORE DEL SERVER: Invalid mail attachment 'C:\prova.txt'.
    OGGETTO: System.Web


    Se invece COMMENTO le righe di codice che allegano il file alla mail, il tutto funziona alla meraviglia!

    Perché l'allegato mi provoca l'errore?
    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    allora:
    tu devi guardare ke file c'è ke l'utente vuole allegare.
    salvarlo sul tuo spazio web (cerca upload in questo forum: miliardi di esempi)
    allegarlo all'email
    eventualmente cancellarlo dal tuo spazio web una volta ke hai mandato l'email ..

    non mi sembra tu possa fare altrimenti

  3. #3
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421
    Credo che tu hai ragione, infatti una cosa che mi ero dimenticato di dire è che io allegavo un file presente nel server (con l'istruzione MapPath("nomefile")), l'email veniva spedita correttamente!

    Questo problema sussiste pure con l'oggetto CDOSYS?
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    >> Questo problema sussiste pure con l'oggetto CDOSYS?
    quello è asp 3... kiedi nel forum apposito ..

  5. #5
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421
    Per fare l'upload del file ho scritto così

    codice:
    txtArticolo.PostedFile.SaveAs(MapPath("") + txtArticolo.Value)
    Ma il server mi ritorna l'errore:

    The given path's format is not supported.

    Che significa?
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    al posto di txt.value metti
    txt.PostedFile.FileName

  7. #7
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421
    Allora, il problema dipendeva dal fatto che la proprietà FileName (o Value) conteneva c:\, pertanto con un'istruzione mid del tipo

    codice:
    strFile = Mid(txtArticolo.PostedFile.FileName, 3)
    txtArticolo.PostedFile.SaveAs(MapPath("") + strFile)
    Il problema più grave, adesso è che mi viene negato l'accesso al server! Cioè quando vado ad eseguire l'upload mi viene generato quest'errore:

    Access to the path "D:\Inetpub\webs\dominio\prova.txt" is denied.

    Cosa devo impostare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    probabilmente è una questione di permessi ..

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    Se usi dell'hosting aruba, il file che trasferisci lo devi mettere nella cartella public
    Quindi dovresti scrivere

    txtArticolo.PostedFile.SaveAs(MapPath("public") + strFile)

  10. #10
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421
    Grazie 1000!
    Adesso funziona sia l'upload sia l'invio dell'email con allegato

    Ancora una domanda...
    il fatto di permettere a qualsiasi persona di inserire sul server file, non potrebbe comportare un grave problema sulla sicurezza?
    Ci potrebbe essere qualche "simpaticone", che potrebbe mettere nel mio server web qualche virus o qualche trojans!
    Il semplice controllo dell'estensione è sufficiente?

    Grazie
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.