通过 jQuery ajax 提交表单,包括文件上传

2024-02-17

HTML:

<input type="text" name="description">
<input type="file" name="image" accept=".jpg">

我该如何使用$.ajax上传图像和文本值?我可以毫无问题地生成一个对象来提交文本数据,但不知道从哪里开始处理图像。

我使用的是 PHP 服务器端,因此以 base64 或类似方法对图像进行编码是完全可以接受的。


最简单的使用FormData() https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects class:

现在您有了一个 FormData 对象,可以与 XMLHttpRequest 一起发送。并使用 FormData 对象附加字段

<script type="text/javascript">
           $(document).ready(function () {
               var form = $('form'); //valid form selector
               form.on('submit', function (c) {
                   c.preventDefault();

                   var data = new FormData();
                   $.each($(':input', form ), function(i, fileds){
                       data.append($(fileds).attr('name'), $(fileds).val());
                   });
                   $.each($('input[type=file]',form )[0].files, function (i, file) {
                       data.append(file.name, file);
                   });
                   $.ajax({
                       url: '/post_url_here',
                       data: data,
                       cache: false,
                       contentType: false,
                       processData: false,
                       type: 'POST',
                       success: function (c) {
                            //code here if you want to show any success message
                       }
                   });
                   return false;
               });
           })
</script>

并强制 jQuery 不要为您添加 Content-Type 标头,否则,上传文件边界字符串将丢失。

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

通过 jQuery ajax 提交表单,包括文件上传 的相关文章

  • 使用 Instagram Basic Display API 时出现“无效平台应用程序”错误

    我正在尝试使用 Instagram Basic 显示 API 但是当我发布授权代码以获取访问令牌时 我不断收到以下错误 error type OAuthException 代码 400 error message 平台应用无效 我正在遵循此
  • 如何在ASP.NET Webform中使用Jquery表单插件?

    我遇到了这个插件 http malsup com jquery form getting started http malsup com jquery form getting started 我想知道如何在 ASP NET WebForm
  • Modernizr - 加载 polyfills / 使用自定义检测的正确方法

    我想在网页上使用一些新的 HTML5 表单属性和输入类型 有些浏览器已经支持它们 有些浏览器不支持 也永远不会支持 这就是我想使用 Modernizr 的原因 这就是我的麻烦开始的原因 据我了解 Modernizr 本身并不是一个 poly
  • 在 WooCommerce 中添加到购物车之前清空购物车

    我正在使用 WP 作业管理器和 Woo Subscriptions Now 最初 我选择了一个套餐 Woo Subscription 然后我添加了所有细节 但没有提交 回到网站 所以要再次购买 我需要选择一个套餐 于是我选择了套餐并填写了详
  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • PHP 中的引用

    我正在编写一个自定义博客引擎 并且希望拥有类似于 Wordpress 的引用 我可以查看 WordPress 源代码 但我真的更喜欢某种教程 但到目前为止我还没有找到 有没有关于在 PHP5 中实现 trackbacks 或 pingbac
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • 如何延迟加载嵌入在 iframe 上的 YouTube 视频?

    如何将延迟加载应用于iframe嵌入视频 我尝试添加loading eager loading auto and loading lazyload 您可以使用srcdoc你里面的属性iframe标签来加载图像 请参阅以下示例作为参考
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • IE 中的 jQuery .width(val) 错误 - 无效参数

    通过ajax加载内部div book table 后 我想调整正文的宽度以适应更大的内容 var new width parseInt book table css width 407 body width new width 在 FF 和
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ZF3/2 - 如何捕获 EVENT_DISPATCH 侦听器中引发的异常?

    有什么方法可以在 EVENT DISPATCH 监听器中抛出异常吗 class Module public function onBootstrap EventInterface event application event gt get
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4

随机推荐

  • titan 1.0.0 中的 gremlin 并未在 Windows 上开箱即用

    我正在关注http s3 thinkaurelius com docs titan 1 0 0 getting started html http s3 thinkaurelius com docs titan 1 0 0 getting
  • SNS 的自我限制消息长时间未发送会怎样?

    假设我有一个 SNS 我使用该属性进行自我限制maxReceivesPerSecond 假设我们的生产率非常高 但由于节流 消耗非常慢 这可能会导致某些消息在 SNS 中停留很长时间 我看到了这个所以答案 https stackoverfl
  • 如何针对特定来电提供定制振动

    该程序的功能如下 用户有一个电话号码列表 只有当没有其他系统范围的应用程序提供振动 例如在静音模式下 时 手机才会在来电时振动 我知道这在某种程度上违反了规则 因为应用程序应该尊重用户的设置 但应用程序仅限于某些有此需求的用户 我尝试了两种
  • 返回此意外输出的 CUDA 代码发生了什么情况?

    终于让动态并行性启动并运行后 我现在正在尝试用它来实现我的模型 我花了一段时间才发现一些奇怪的输出是由于需要使用 cudaDeviceSynchronize 让父内核等待子内核完成而导致的 我定义为 arrAdd 的设备函数似乎有问题 下面
  • 如何更改删除+添加以在git历史记录中移动

    我有一个 git 存储库 它是一些旧的 svn 存储库的混合体 当我混合所有内容时 我没有意识到要执行 git mv 而不是仅仅移动文件 所以现在大多数文件的 svn 历史记录都丢失了 有办法解决这个问题吗 旧的结构是这样的 svn1 ap
  • 如何从 Linux 访问 Team Foundation Server (TFS)

    如果这个问题不是特定于 VCS 的 因此程序员比系统管理员更了解这种问题 那么我会问有关服务器故障或超级用户的问题 也就是说 如何从 Linux 访问 TFS 是否有一个可以在 Linux 上运行的客户端应用程序 或者一个可以在 Windo
  • SQL Server 的数据生成器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 过滤 Pandas 数据框聚合

    我有一个 pandas 数据框 我对其进行分组 然后执行聚合计算以获得平均值 grouped df groupby year month company means grouped agg size mean 这给了我一个数据框 但我似乎无
  • Angular/Typescript - 该表达式不可构造。类型“MoveDataClass”没有构造签名

    我正在使用 3 种方法创建一个类来创建该类的新实例 但是当我尝试这样做时 会出现以下错误 Angular Typescript 该表达式不可构造 类型 MoveDataClass 没有构造签名 我做错了什么 班上 export class
  • Emacs 重新排列分割窗格

    如果我在 终端 Emacs 中工作并且使用水平分割在屏幕上有 2 个缓冲区
  • 属性表模式与将所有属性存储在 json 列中[重复]

    这个问题在这里已经有答案了 我想要一些关于模型可以在通过关系访问的属性表中拥有的所有属性 使用 Laravel 关系 与将所有属性 设置存储在同一个表中但在 json 列中的反馈 目前 我的应用程序有一个名为 设置 的属性表 它本质上也是多
  • Django“xxxxxx 对象”在管理操作侧边栏中显示自定义

    我想更改管理员最近更改侧边栏显示添加的 对象 名称的默认行为 参考下图 我想更改它们在管理中的命名方式 理想情况下 我希望能够将其从 MyModelName 对象 更改为 策略 对象示例中的 策略 策略的 策略名称 字段的值 我在想 uni
  • htaccess url 重写,url 中包含多个变量

    我想在我的 htaccess 文件上制定一些 url 重写规则 以便此链接 http myseite com index php var1 value1 var2 value2会变成 http myseite com var1 value2
  • 在 Webpack Visual Studio 2017 .NET Core 2.2 捆绑的 Chrome 中调试 Typescript

    有几个问题 但大多数答案似乎是 如果你有 VS 2017 现在应该是默认的 我的调试器无法正常工作 因此我想提供我的具体案例以获得一些帮助 我也是 Typescript 和 Webpack 的新手 可以提供一些背景信息 项目层次结构 www
  • 如何使用 SASS 扩展/修改(自定义)Bootstrap

    我想创建一个基于 Bootstrap 的网站主题 我想扩展 Bootstrap 的默认组件并更改其中的一些组件 为此 我需要access到 Bootstrap 定义的 SASS 变量 这样我就可以覆盖它们 我想过从 GitHub 克隆 Bo
  • 正则表达式查找具有起始词和结束词的最短字符串

    我想找到一种方法来编写正则表达式来搜索以指定的开始子字符串开头并以另一个指定的结束字符串结尾但总长度最小的字符串的出现次数 例如 如果我的起始字符串是bar我的结束字符串是foo当搜索字符串时barbazbarbazfoobazfoo那么我
  • 解析没有 .proto 文件的 Protocol-Buffers

    作为安全项目的一部分 我正在对 Android 应用程序进行逆向工程 我的第一步是发现应用程序和服务器之间交换的协议 我发现正在使用的协议是协议缓冲区 鉴于 protobuf 的性质 需要原始 proto 文件才能反序列化 protobuf
  • 如何使用 Vue JS 设置嵌套数组的增量计数器

    我使用 Vue JS 的数组深度为两层 我需要一个从 0 开始的索引 并为顶部数组中的每个项目递增 这是我的 HTML div div
  • 使用DDD,如何实现批处理?

    我的逻辑包括从一个系统中选择大量记录 执行多个转换 基于业务规则 并将它们插入到另一个系统中 将这些记录中的每一个实例化为对象 对它们执行转换 然后将所有这些对象插入到另一个系统中 这似乎对性能 和内存 产生了很大的影响 在 DDD 中实现
  • 通过 jQuery ajax 提交表单,包括文件上传

    HTML