【问题标题】:Deleting asp:FileUpload elements makes jQuery File Upload not to work删除 asp:FileUpload 元素使 jQuery File Upload 不起作用
【发布时间】:2015-02-18 09:48:20
【问题描述】:

我正在做旧表单的新版本,一切都很好,但是旧的 FileUpload 标签有问题。我正在使用 jQuery 多文件上传插件作为新的上传样式,效果很好!唯一的问题是,如果我删除旧的 FileUpload 元素,新的元素将不再起作用。所以我的目标是制作表单,用户可以在其中选择将作为电子邮件附件发送的文件。我花了几个小时试图弄清楚这是怎么可能的,因为我也从 c# 文件中删除了对该元素的所有引用。有人有想法吗?

<!-- PROBLEM STARTS-->
        <!-- if I delete or add Visible="false" attribute to the element the new upload system wont work anymore-->
        <asp:FileUpload ID="fuIssueAttachmentUppload" runat="server" Width="218px" EnableViewState="False"
            ViewStateMode="Disabled" />
        <!-- PROBLEM ENDS-->
        <p>
            <asp:Label ID="lblIssueAttachment" runat="server" Text="Attach file(s)"></asp:Label><br />
            <input type="file" class="multi" />
        </p>
        <asp:Button ID="btnSend" runat="server" Text="Send" OnClick="btnSend_Click" Width="290px"
            CausesValidation="False" />

这是我将上传的文件附加到电子邮件的部分

for (int i = 0; i < Request.Files.Count; i++)
        {
            HttpPostedFile file = Request.Files[i];
            mail.Attachments.Add(new Attachment(file.InputStream, file.FileName));
        }

【问题讨论】:

  • 一个&lt;asp:FileUpload&gt; 将呈现一个&lt;input type="file"&gt;。如果您不再需要任何服务器端交互,则可以将其替换为其中之一。
  • 什么意思?关键是我不想使用旧的 它使用 jquery 多文件上传东西:)
  • 好的,如果你这样做,你能准确解释什么“不起作用”吗?
  • 我编辑了主帖。但是是的,忘了提到如果我删除 元素,它不再附加电子邮件。因此,如果我有新旧文件上传元素,则新元素有效。但是,如果我只有新元素,它将不再起作用。是否可以测试文件是否真的被请求或者是 mail.Attachments 错误?
  • “不附加电子邮件”是什么意思,您是否收到错误消息? Request.Files 里面有文件吗?当它“不起作用”时到底有什么不同。

标签: c# jquery html asp.net jquery-file-upload


【解决方案1】:

我设法修复它!新的输入标签没有 runat 属性。所以我唯一要做的就是删除旧标签并将新的上传标签修改为:

<input runat="server" type="file" class="multi" />

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2018-03-18
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多