2012-03-14 3 views
0

Я создал форму, которая позволяет клиенту загружать несколько (4) вложений. Проблема заключается в том, когда форма отправляется на мой адрес электронной почты, я получаю 4 вложения на почту , даже если клиент загрузил только 1 приложение. если он загрузил одно вложение Я получаю остальное как «неимеемые» файлы. как я могу это исправить?asp.net vb form attachment issue

это мой бэк-код (VB):

Imports System.Net.Mail 

Partial Class SendAttachment 

    Inherits System.Web.UI.Page 


    Protected Sub DL1_SelectedIndexChanged(sender As Object, e As EventArgs) 
    If DropDownList1.SelectedItem.Text = "אחר" Then 
     q1.Visible = True 
     Else 
       q1.Visible= False 
    End If 
If DropDownList1.SelectedItem.Text = "אחר" Then 
     q22.Visible = True 
     Else 
      q22.Visible= False 
    End If 
End Sub 

    Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click 
     'Make sure a file has been uploaded 



    If String.IsNullOrEmpty(AttachmentFile.FileName) OrElse AttachmentFile.PostedFile Is Nothing Then 
      Throw New ApplicationException("לא העלאת קבצים.") 
     End If 

if AttachmentFile.PostedFile.ContentLength >600000 then 

'display error file size should be less than 100kb 

end if 







     '!!! UPDATE THIS VALUE TO YOUR EMAIL ADDRESS 
     Const ToAddress As String = "[email protected]" 
     dim textMsg as String 
    textMsg ="שאלות סינון" & 
(vbCrLf) & (vbCrLf) & (vbCrLf) & question1.text & (vbCrLf) & q1.text & 
(vbCrLf) & (vbCrLf) & question2.text & (vbCrLf) & q2.text & 
(vbCrLf) & (vbCrLf) & question3.text & (vbCrLf) &q3.text & 
(vbCrLf) & (vbCrLf) & "ממליצים" & (vbCrLf) & c1.text & (Space(5)) & c2.text & (Space(5)) & c3.text & (vbCrLf) & 
(vbCrLf) & question4.text & (vbCrLf) & q5.text & (vbCrLf) & 
(vbCrLf) & question5.text & (vbCrLf) & q6.text & (vbCrLf) & 
"------------------------------------------------------------------------------------------------" & 
(vbCrLf) & "פרטים אישיים" & (vbCrLf) & 
(vbCrLf) & "שם מלא" & (vbCrLf) & pi1.text & (vbCrLf) & 
(vbCrLf) & "כתובת מייל" & (vbCrLf) & UsersEmail.Text & (vbCrLf) & 
(vbCrLf) & "טלפון" & (vbCrLf) & pi2.text & (vbCrLf) & 
(vbCrLf) &"שעות נוחות" & (vbCrLf) & pi3.text & (vbCrLf) & 
(vbCrLf) & (vbCrLf) & "הערות" & 
(vbCrLf) & body.text & (vbCrLf) & 
(vbCrLf) & "מעוניין בהצעות נוספות" & (vbCrLf) & q4.text 
' 



     '(1) Create the MailMessage instance 
     Dim mm As New MailMessage(UsersEmail.Text, ToAddress) 

     '(2) Assign the MailMessage's properties 
     mm.Subject = Subject.text & "-" & pi1.text 
     mm.Body = textMsg 

     mm.IsBodyHtml = false 

     'Attach the file 
     AttachmentFile.PostedFile.InputStream.Position = 0 

     mm.Attachments.Add(New Attachment(AttachmentFile.PostedFile.InputStream, AttachmentFile.FileName)) 
     mm.Attachments.Add(New Attachment(AttachmentFile2.PostedFile.InputStream, AttachmentFile2.FileName)) 



     '(3) Create the SmtpClient object 
     Dim smtp As New SmtpClient 

     '(4) Send the MailMessage (will use the Web.config settings) 
     smtp.Send(mm) 

     'Show the EmailSentForm Panel and hide the EmailForm Panel 
     EmailSentForm.Visible = True 
     EmailForm.Visible = False 
    End Sub 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     If Not Page.IsPostBack Then 
      'On the first page load, hide the EmailSentForm Panel 
      EmailSentForm.Visible = False 

     End If 
    End Sub 
End Class 

спасибо заранее!

ответ

0

Это то, что вы добавляете вложения, хотя оно не было загружено с помощью mm.Attachments.Add.

Вы должны проверить каждый загруженный файл перед присоединением к электронной почте

Это может быть сделано, как показано ниже, если (AttachmentFile2.Hasfile) mm.Attachments.Add (New Attachment (AttachmentFile2.PostedFile.InputStream, AttachmentFile2. FileName))

+0

не могли бы вы направить меня к тому, как это сделать? – pelleg

+0

Пожалуйста, обратитесь к коду в моем ответе –