我一直在尋找一個解決方案,因爲幾天。我不是一個.net程序員,但我正在努力幫助別人解決他們的代碼問題。我需要從一個html form.The HTML表單如下所示(我已刪除任何其他標記,以保持代碼的短)如何發送Html輸入文件的值作爲電子郵件附件c#.net
<form method="post" enctype="multipart/form-data" >
<label for="attachAdd">Attach copies of Identification:</label><span>(REQUIRED)</span>
<input type="file" id="attachAdd" name="attachAdd" class="file-upload no-print" size="60" />
</form>
我的C#代碼(附加的.cs通過輸入類型上傳任何文件=文件)文件如下所示:
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Net.Mail;
using System.Web.UI;
using System.Data;
namespace Corp.SP.NewForms
{
public class ProcessForms : ParentForm
{
public ProcessForms(string formHTML, EFormMetaData formMetaData, Page requestPage)
: base(formHTML, formMetaData, requestPage)
{
EFormHTML = formHTML;
EFormMetaData = formMetaData;
EFormPage = requestPage;
}
public override string ProcessEmail(EFormMetaData formInfo, Page page)
{
string email = base.ProcessEmail(formInfo, page);
//Process body header
email = email.Replace("{FORMURL}", new UriBuilder(page.Request.Url) { Port = -1 }.ToString());
email = email.Replace("{EMAILTOADDRESS}", formInfo.EmailToAddress);
email = email.Replace("{EMAILSUBJECT}", formInfo.EmailSubject);
string attachAdd = page.Request.Form["attachAdd"];
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(attachAdd); //ERROR
email.Attachments.Add(attachment);
return email;
}
public override void SendEmail()
{
base.SendEmail();
}
}}
我覺得如果用添加附件的代碼是不正確的,但我發現它this question of Stackoverflow。
string attachAdd = page.Request.Form["attachAdd"];
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(attachAdd); //ERROR
email.Attachments.Add(attachment);
的代碼顯示錯誤與下附件(String不包含定義爲「附件」,並沒有擴展方法「附件」紅線接受類型「字符串」的第一個參數可以發現(你是否遺漏了使用指令或裝配參考))在下面的行中。
email.Attachments.Add(attachment);
任何人都可以闡明我如何糾正這段代碼。我們使用SharePoint Eforms。
'email'是一個字符串,如錯誤說,它沒有財產'Attachments'。您不能嘗試將附件添加到字符串。您可能想要創建一封電子郵件並附加到該郵件。請參閱您發佈的鏈接,瞭解如何操作。 –