Je cherchais une solution depuis quelques jours. Je ne suis pas un programmeur de .net mais j'essaye d'aider quelqu'un avec leur code. Je dois joindre un fichier téléchargé via input type = fichier à partir d'un formulaire HTML form.The Html ressemble à ce qui suit (je l'ai supprimé toutes les autres balises pour garder le code court)Comment envoyer une valeur de fichier d'entrée Html en pièce jointe dans l'e-mail 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>
Mon code C# (.cs) fichier se présente comme suit:
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();
}
}}
Je me sens comme si le code utilisé pour ajouter des pièces jointes n'est pas correct, mais je l'ai trouvé sur 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);
Le code indique l'erreur avec une ligne rouge sous Pièces jointes(chaîne ne contient pas la définition de « pièces jointes » et aucune méthode d'extension « Pièces jointes » d'accepter un premier argument de type « String » n'a pu être trouvée (manque-t-il une directive using ou une référence d'assembly?) dans la ligne suivante.
email.Attachments.Add (pièce jointe); Quelqu'un peut-il faire la lumière sur la façon dont je peux corriger ce code?
Nous utilisons des Eforms SharePoint.
'email' est une chaîne, comme l'erreur dit qu'il n'a pas de propriété' Attachments'. Vous ne pouvez pas essayer d'ajouter une pièce jointe à une chaîne. Vous voulez probablement créer un message électronique et joindre à cela. Voir le lien que vous avez posté vous-même pour savoir comment le faire. –