Jquery ajax 表单提交包含文件

2024-01-02

我有一个很长的表格,其中包含文件附件:

这就是我的表格的样子:

表单将提交至此操作:

[HttpPost]
public ActionResult AddReceivingConfirm(DTOreceiving entry,IEnumerable<HttpPostedFileBase> fileUpload)
    {

        return PartialView();
    }

通过ajax调用,即:

$(document).on('click', 'input[type="submit"].genericSubmit', function () {                    //generic function for ajax submit of ANY FORMS t

        if (!$("form#ValidateForm").valid()) {
                return false;
        };


        var frmData = $('.genericForm').serialize();
        var frmUrl = $('.genericForm').attr('action');
            $.ajax({
              type: 'post',
              url: frmUrl,
              data: frmData,

              success: function (e) {
                 $('#target').html(e);
             }
         });
         return false;
 });

一切都完美结合,除了IEnumerable<HttpPostedFileBase>这总是导致null,

我的表单的文件部分是这样完成的:

 <tr>
 <td>Attachment #1: </td>
 <td colspan="3">
     <input id="file1" type="file" name="fileUpload" />
 </td>

 </tr>

  <tr>
  <td>Attachment #2: </td>
 <td colspan="3">
     <input id="file2" type="file" name="fileUpload" />
 </td>

 </tr>

  <tr>
  <td>Attachment #3: </td>
 <td colspan="3">
     <input id="file3 "type="file" name="fileUpload" />
 </td>

 </tr>

我已经尝试过括号版本等,但它不会绑定。

经过一个小时的研究,我了解到不可能(?)通过使用 Ajax 传统地进行文件发布,除非使用 iframe。我不确定我的行动会是什么,我有点想避免使用插件,所以我想知道是否有一些“hacky”方法可以直接从我的表单访问文件?

这是我的表格:

using (Html.BeginForm("AddReceivingConfirm", "Wms", FormMethod.Post, new { id = "ValidateForm", @class = "genericForm" , enctype="multipart/form-data"}))

不幸的是 jQueryserialize()方法将不包含输入文件元素。因此您的文件不会包含在序列化值中。

你应该做的是创建一个FormData对象,将文件附加到该对象。您还需要将表单字段值附加到同一个 FormData 对象中。您可以简单地循环遍历所有输入字段并添加它。另外,在ajax调用中,您需要指定processData and contentType属性值至false.

$(document).on('click', 'input[type="submit"].genericSubmit', function(e) {

    e.preventDefault(); // prevent the default submit behavior.

    var fdata = new FormData();

    $('input[name="fileUpload"]').each(function(a, b) {
        var fileInput = $('input[name="fileUpload"]')[a];
        if (fileInput.files.length > 0) {
            var file = fileInput.files[0];
            fdata.append("fileUpload", file);
        }
    });

    // You can update the jquery selector to use a css class if you want
    $("input[type='text'").each(function(x, y) {
        fdata.append($(y).attr("name"), $(y).val());
    });

    var frmUrl = $('.genericForm').attr('action');
    $.ajax({
        type: 'post',
        url: frmUrl,
        data: fdata,
        processData: false,
        contentType: false,
        success: function(e) {
            $('#target').html(e);
        }
    });

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jquery ajax 表单提交包含文件 的相关文章

  • 使用 jQuery 从 CKEditor 的 iframe 中获取内容

    我有一个自定义编写的 CMS 它使用CKEditor http ckeditor com FCKEditor v3 用于编辑内容 我也在使用jQuery 验证 http bassistance de jquery plugins jquer
  • Ajax 表单从 Jquery 对话框内重定向页面

    我在部分视图中有一个 jquery 对话框 model JQueryDialogPoc Models FeedBack using Ajax BeginForm GiveFeedback Home null new AjaxOptions
  • jQuery AJAX 请求在 IE8 中失败,并显示消息“错误:调用 open 方法之前无法调用此方法。”

    我正在使用 jQuery 1 4 2 并尝试执行一个简单的 AJAX 请求 目标 URL 返回一个 JSON 字符串 我使用 jslint 对其进行了验证 该请求在 Firefox 和 Chrome 中有效 但不想在 IE8 中工作 我无法
  • 在 C# mvc 代码中进行实时搜索后,如何用值更新无序列表?

    我想在文本框中输入内容时进行实时搜索来过滤结果 有一个 html 无序列表 在页面加载时从模型中填充 这些是我在搜索时要过滤的项目 问题是如何使用搜索值更新 ul cshtml页面 div div
  • 从 MVC 控制器调用 Web API

    我的 MVC 5 项目解决方案中有一个 Web API 控制器 WebAPI 有一个方法可以将特定文件夹中的所有文件作为 Json 列表返回 name file1 zip path c 从我的 HomeController 我想调用这个方法
  • 构建视图模型的最佳方法是什么?

    我正在使用带有实体框架的 asp net mvc 并开始学习 DDD 我正在从事包含调查的项目 这是我的域模型 public class Survey public int SurveyID get set public string Na
  • 过滤文件上传仅用于文本文件

    我使用的是 Firefox 版本 14 0 1 我需要过滤上传文件窗口以仅显示 txt files 我的浏览器不仅仅支持文本文件 text plain 我可以通过指定此格式来限制图像文件 image 但我只需要过滤文本文件在文件选择器窗口中
  • ExtJS:使用“记住我”功能登录

    我正在尝试创建一个具有非常常见的 记住我 功能的简单登录窗口 登录验证是通过 AJAX 风格完成的 因此浏览器不会记住我的输入 我的方法是使用内置的state功能 但是如何使用它让我很困惑 Ext state Manager setProv
  • ajaxStart 和 ajaxStop 与 fetch API 等效

    我正在尝试将 API 调用从使用 jQuery ajax 迁移到使用 Fetch API 我使用 jQuery ajaxStart 和 ajaxStop 在服务器调用期间显示加载旋转器 我正在运行多个并行服务器请求 我希望旋转器在第一个请求
  • ASP.NET MVC 多线程

    我想在我的 asp net mvc 应用程序中实现这样的逻辑 user clicks a button gt server executes some time consuming logic in 15 threads i get dat
  • asp.net mvc 主要细节

    我想使用 ASP NET MVC Entity Framework 创建一个用于订单输入的网页 此页面包含订单和订单输入信息 对于每个订单 我可以有多个订单详细信息 如果您知道如何使用 ASP NET MVC Entity Framewor
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 从 MVC 控制器操作调用 javascript

    我可以调用 javascript 函数吗MVC 控制器动作 不是来自视图页面 并获取返回值 如何 我需要向服务器发出请求来自代码 cs 像这里一样使用 javascript 但这是aspx页面 function getInitData va
  • 起订量:无法投射到接口

    今天早些时候我问过这个question https stackoverflow com questions 2774785 moq unable to cast 因此 由于起订量从接口创建它自己的类 我无法将其转换为不同的类 所以这让我想知
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • Active Directory 会员资格提供商 - 如何对此进行扩展?

    我正在努力通过 AD Membership Provider 启动并运行 MVC 应用程序 但在解决这个问题时遇到了一些问题 我有一个基本配置设置并在我登录时工作 电子邮件受保护 cdn cgi l email protection 密码
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl

随机推荐

  • 导航栏无法通过 bootstrap5 在移动设备上扩展

    我正在使用 Bootstrap 5 制作一个网站 但我的导航栏不起作用 当我在移动设备上时 它不会扩展 import url https fonts googleapis com css2 family Poppins ital wght
  • 如何通过蓝牙使用 Android 应用程序连接到 Raspberry pi

    我无法使用应用程序通过蓝牙将智能手机连接到树莓派 我的情况 我正在开发一个基于树莓派的蓝牙可控应用程序 我可以通过蓝牙连接到树莓派 并使用应用程序 蓝牙终端 通过 RFCOMM 套接字发送和接收数据 树莓派不断监听 RFCOMM 连接 My
  • Android中如何获取电话号码?

    这是问题的延伸here https stackoverflow com questions 6329216 how to obtain mobile number of own device in android 现在我引用通用软件 htt
  • iPhone SDK-调试器错误:正在调试的程序未运行

    我按照 iPhone SDK 开发人员门户上的确切说明启动了第一页上的 Assistant 但即使我多次删除配置文件 证书并多次重复相同的过程 我仍然遇到相同的错误 请帮忙 如果您以前使用过它们 检查 NSDebugEnabled NSZo
  • 如何在 RDLC Microsoft Dynamic NAV 2013 报告中显示 Unicode 字符?

    我在 RDLC 报告中添加了一个文本框 并将其值设置为 unicode 字符 但当我运行报告时 我只得到了 符号 请帮我解决这个问题 我希望在报告中看到 unicode 字符 I had the same problem and found
  • Adobe AIR 有什么意义? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有点困惑 我不断看到有关 Adob e AIR 如何让您下载在桌面上运行的应用程序的文章 我们不是已经有了这个吗 这与任何 WinForms
  • 为现有 GitHub 存储库创建 CocoaPod

    最近我创建了一个小型 iOS 类 我想将它与 CocoaPods 一起使用 现在我已经将它添加到GitHub https github com cloverstudio CSGrowingTextView我已经关注了本教程 http nss
  • Eclipse 随机停止启动

    我最近经常使用Eclipse 并且没有遇到任何问题 昨晚 我的工作非常顺利 然而 今天早上 每当我加载它时 程序都会在加载初始屏幕的一半位置停止工作 在实际工作区打开之前 该信息显示 正在加载工作台 并且永远留在那里 当我多次单击它时 我收
  • pyqtgraph:缩放时保持 TextItem 的恒定位置

    我想要一个在缩放 y 轴时在图表上保持恒定位置的 TextItem 其功能与图例基本相同 只是作为 TextItem 我可以根据需要更改文本 我不知道该怎么做 欢迎任何建议 这个例子说明了问题 在左侧图表中 缩放 y 轴会导致文本移动 而在
  • Python3.5.2 bdist_wininst:需要Python版本-32,在注册表中找不到

    我在 Windows 7 上使用 Python 3 5 2 32 位创建的包出现问题 我通常使用以下命令在 Windows 上部署 Python 包bdist wininst设置工具的选项 这样 我的同事只需启动 Windows 安装程序
  • 连接两个 mp4 视频后视频中出现奇怪的“暂停”

    我正在连接两个 mp4 视频 问题是第一个视频 intro mp4 持续 5 秒 第二个视频 output mp4 持续 2 秒 连接它们创建的视频持续 9 秒 应该持续 5 2 7 秒 在 Final mp4 视频中 第一个视频 intr
  • 在 WooCommerce 中获取并显示相关产品

    我已将 WooCommerce 相关产品包含在主题中 内容如下 这已被复制到我的模板中并正在执行 然而 尽管我对该产品添加了各种追加销售 related products变量 在循环中使用 为 NULL 为了开始展示这些相关产品 是否还有其
  • ARKit:查找屏幕上SCNNode的坐标

    我有一个简单的 Swift ARKit 设置 其中有一个 SCNNode 和一个在 ARSCNView 中可见的 3D 对象 我想确定该对象在 ARSCNView 上的 2D 坐标 我的意思是对象被绘制到屏幕上时的 x 和 y 坐标 I h
  • 运行较少的服务器端与客户端

    与服务器端相比 在客户端运行 LESS 框架有哪些优点 缺点 如果在客户端运行页面加载时间会受到影响吗 在服务器上 您必须更加小心缓存控制标头 并且会牺牲一点 CPU 能力 在客户端 如果 JS 不可用 它就会中断 对于您的生产系统 在构建
  • 代码辅助 (ctrl+space) 在 Eclipse Kepler 上不起作用 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Code assist ctrl space doesn t work on Eclipse Kepler This happened t
  • 事件 - 命名约定和风格

    我正在学习 C 中的事件 委托 我可以询问您对我选择的命名 编码风格 摘自 Head First C 一书 的看法吗 明天我要教一个朋友这个问题 并试图想出最优雅的方式来解释这些概念 认为 理解一门学科的最好方法就是尝试并教授它 class
  • SELECT 命令计算百分比

    我试图根据每个视频相对于所有其他视频的观看次数来获取数据库中每个视频的百分比 然后 我尝试显示从最高观看次数到最低观看次数的所有视频 并在一个漂亮的 HTML 页面内的侧面显示其百分比 显然 百分比范围为 0 100 且不会超过 我认为最受
  • 为什么 AutoHotkey 会响应“系统找不到文件”错误?

    我是 AutoHotkey 的新手 无法理解为什么这个脚本给我这个错误 Failed to launch program or document Action
  • 如何使用Gtk.events_pending?

    我有这个基本的 测试 应用程序 我想在其中显示一个旋转器 而它正在长时间运行发射进程 带有数据库请求的函数 让用户知道它不是在调试而是正在启动 我在其他帖子中读到可以这样做Gtk events pending 功能 但我不知道如何 在哪里使
  • Jquery ajax 表单提交包含文件

    我有一个很长的表格 其中包含文件附件 这就是我的表格的样子 表单将提交至此操作 HttpPost public ActionResult AddReceivingConfirm DTOreceiving entry IEnumerable