Sitecore Web Forms For Marketers是否有任何文件上传配置设置?

时间:2014-03-21 15:29:08

标签: sitecore sitecore7 web-forms-for-marketers

是否可以配置

  • 将文件上传到(目前正在将其直接上传到媒体库)
  • 文件如何在表格报告中显示(目前是一个不易阅读或点击的长链接字符串)
  • 允许哪些文件类型(例如仅限图片)
  • 如何通过电子邮件转发文件

我们有一个多站点解决方案,因此理想情况下,我们希望能够在表单的基础上在表单上设置这些解决方案,但能够将默认值配置为解决方案默认值>网站默认>具体形式。

我已经看到有限制文件大小的代码示例,这是我们想要做的其他事情。

所有这些都可以直接配置,还是我们需要对它们进行编码?

编辑: 营销人员的Web表格2.3.0 rev.131126 在Sitecore 7.0 rev上运行。 140120(7.0更新-4)。

3 个答案:

答案 0 :(得分:4)

是的,您可以在文件字段的情况下定义文件将上传的路径。 请参阅随附的屏幕截图。

enter image description here

答案 1 :(得分:2)

所有文件上传设置均位于: / sitecore /系统/模块/营销人员/设置/字段的Web表单 类型/简单类型/文件上传

上传文件时运行的管道是“formUploadFile”;所以你可以反映现有的并修改以添加所需的更改。

答案 2 :(得分:2)

要上传允许的文件类型,请使用以下链接。

http://sitecorejunkie.com/2014/06/16/restrict-certain-files-from-being-uploaded-through-web-forms-for-marketers-forms-in-sitecore-an-alternative-approach/

在这里你可以了解如何限制WFFM中的mime类型。

要在电子邮件中发送附件,您可以在Sitecore中创建自定义发送电子邮件操作,并使用下面的代码

//发送带附件的电子邮件

public static bool SendEmailWithAttachments(string To, string From, string Subject, string Message, string atchmnt1, string atchmnt2, string atchmnt3) {
    bool result = true;
    try {
        MailMessage mailMsg = new MailMessage();
        // mailaddress of sender
        MailAddress mailFrom = new MailAddress(From);
        mailMsg.From = mailFrom;
        // mail addresses for recipients
        string[] mailAddressList = To.Split(',');
        foreach (string str in mailAddressList) {
            try {
                MailAddress mailTo = new MailAddress(str.Trim());
                mailMsg.To.Add(mailTo);
            }
            catch { }
        }
        mailMsg.Subject = Subject;
        mailMsg.Body = Message;
        mailMsg.IsBodyHtml = true;
        if (!string.IsNullOrEmpty(atchmnt1)) {
            mailMsg.Attachments.Add(ReadAttachment(atchmnt1));
        }
        if (!string.IsNullOrEmpty(atchmnt2)) {
            mailMsg.Attachments.Add(ReadAttachment(atchmnt2));
        }
        if (!string.IsNullOrEmpty(atchmnt3)) {
            mailMsg.Attachments.Add(ReadAttachment(atchmnt3));
        }
        var smtp = new SmtpClient(Sitecore.Configuration.Settings.MailServer, Sitecore.Configuration.Settings.MailServerPort);
        smtp.Send(mailMsg);
    }
    catch {
        result = false;
    }
    return result;
}
// get attachement by media item id
public static Attachment ReadAttachment(string value) {
    MediaItem mediaItem = null;
    ItemUri itemUri = ItemUri.Parse(value);
    if (itemUri != null) {
        Item item = Database.GetItem(itemUri);
        if (item != null) {
            mediaItem = new MediaItem(item);
        }
    }
    // create attachment using media item properties
    Attachment attachment = new Attachment(mediaItem.GetMediaStream(), string.Join(".", new string[] { mediaItem.Name, mediaItem.Extension}), mediaItem.MimeType);
    return attachment;
}