JQuery AJAX 从表单发送文件数组

2023-11-29

我在某个地方找到了这段代码,可以在不刷新浏览器的情况下上传图片。然而,我不喜欢上传器文件,所以我决定使用我以前使用过的旧文件。问题在于它正在发送一个数组而不是来自 javascript 文件的字符串(它的目的是发送多个文件而不是仅发送一个文件)。这是创建数组的代码:

input.addEventListener("change", function (evt) {
    document.getElementById("response").innerHTML = "Loading . . ."

    var i = 0, len = this.files.length, img, reader, file;

    for ( ; i < len; i++ ) {
        file = this.files[i];
            if (formdata) {
                formdata.append("uploaded_file[]", file);
    }   }   }

    if (formdata) {
        $.ajax({
            url: "img_upload.php",
            type: "POST",
            data: formdata,
            processData: false,
            contentType: false
        }).done(function (res) {
                            /* *** show uploaded item *** */
                            /* *** show response *** */
            });
    }

我的 Javascript 知识非常薄弱,我不知道如何修改此代码以单独发送上传的文件而不是数组。

我独立尝试了这些,但没有一个起作用(send_img 是表单名称/id):

formdata = document.send_img.uploaded_file.value;
formdata = document.getElementById("uploaded_file");
formdata = new formdata ($('#send_img'));
formData = $('#send_img').serialize();
formdata.replaceWith("uploaded_file[]", file);

我也尝试消除for使用相同的密钥 (0),但这样不行。 img_upload.php 的精简代码是:

$fileName = $target . $_FILES["uploaded_file"]["name"];
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
$fileName = $new_name .  "."  . $fileExt;
move_uploaded_file($fileTmpLoc, "images/images/temp/$fileName");

如何仅以一个字符串发送上传的文件(或标头或应该发送的任何内容),并且在添加第二个文件的情况下,替换第一个文件而不是在数组中创建第二个值?


问题不是你的逻辑,问题是文件无法通过ajax上传。

但也许你会问,别人是怎么做的?好吧,尝试一个表单插件(另一个与 jQuery 一起使用的 .js)

我为你找到了这个,它使用“提交”方法工作,但也许你可以在输入更改时进行提交,或者使用 JavaScript 操作找到其他类型的解决方案。

检查一下:http://www.miguelmanchego.com/2009/subir-archivos-usando-ajax-jquery/

网站是西班牙语,但如果您需要,请将其翻译成英语。该链接还包括一个实时示例和源代码下载。

Regards.

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

JQuery AJAX 从表单发送文件数组 的相关文章

随机推荐

  • 为什么 gets() 不消耗整行输入?

    我正在尝试使用gets 从用户那里获取一个字符串 但程序似乎直接传递过来gets 用户提供输入时不会有任何停顿 为什么是gets 什么也没做 char name 13 printf Profile name gets name printf
  • 模拟二元交叉(SBX)交叉运算符示例[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我在一个研究团队中工作 解决多目标工程问题 我专注于NSGA II算法 但现在我陷入困境 我需要了解 SBX 交叉如何与数值示例一起工作 以便我可以
  • 如何防止 Less 尝试编译 CSS calc() 属性?

    The Less我正在使用的编译器 橙色比特 and 无点1 3 0 5 正在积极翻译 body width calc 100 250px 1 5em into body width calc 151 5 这显然是不希望的 我想知道是否有一
  • 移动控件时阻止表单滚动

    我有一个打开自动滚动的表单 并且表单中有一个用户可编辑区域 用户可以调整控件大小或移动控件 移动控件时 如果它们移出窗体的工作区 则会显示滚动条 这是我的意图 现在 表单将自动向下滚动 因此当用户不释放鼠标时 控件将继续向下移动 这显然不是
  • 用值填充张量中的特定索引

    我是张量流初学者 我创建了这个张量 z tf zeros 20 2 tf float32 我想改变索引的值z 2 1 and z 2 2 to 1 0而不是零 我怎样才能做到这一点 你什么exactly无法询问有两个原因 z是一个常数张量
  • 多个模板中的 Twig Assetic 样式表

    我正在尝试将样式表添加到数组中 以便当树枝模板延伸到第二层和第三层时 聚合的样式将继续下去 这个主题是相关的跨继承模板组合资产资源 From 配置 yml 我做了一个全局数组mystyles这样我们就可以在渲染过程中 冒泡 时添加到必要的样
  • web.py 应用程序上的 Pytests 未覆盖方法代码

    首先 很抱歉 如果术语不是 100 正确 或者有些东西没有 100 有意义 我对 Web 应用程序开发和在堆栈溢出上发布的文章还很陌生 我有一个 web py 应用程序 需要使用 pytest 测试其功能并生成代码覆盖率报告pytest c
  • 如何找出哪个变量具有最大值

    if A gt B and C and D print A wins if B gt A and C and D print B wins 如何检查并查看哪个变量包含组中最大的整数 决定谁胜谁负 您可以测试每一项 if A gt B and
  • 如何离线安装 DoctrineFixturesBundle

    首先 由于我的 ISP 我无法使用 Composer 所以 我需要一种方法来安装DoctrineFixturesBundle手动 所以我开始从github 还有data fixtures捆 我在我的项目中创建这个文件夹结构 vendor d
  • SSE 的 EventSource 和 XMLHttpRequest 之间的区别

    我正在实现服务器发送事件应用程序逻辑 服务器端已经完成 现在正在处理客户端部分 在我看来 JS 正在使用 EventSource 对象 这看起来非常合乎逻辑 因为它就是为此而设计的 但它也有很多限制 只有 GET 请求 没有标头 没有数据
  • Datagramsocket:receive(...) 如何处理数据包的碎片

    我从我的教授那里了解到 使用 UDP 套接字发送的数据报包在较低层中会被分段 并且may作为多个数据包到达接收端 例如 如果我在数据报包中发送 1000 字节的数据 则在接收端might到达时 例如 2 字节 500 字节 12 字节等 因
  • 如何将图像从 Java Applet 发送到 JavaScript?

    我有一个正在生成图像的 Java Applet 最终 我想将图像数据插入数据库 因此我想将图像数据临时存储在包含小程序的页面上的表单字段中 我希望做到这一点而不在客户端计算机上存储图像文件 这一切都来自签名板 以下是一些应该从 sigObj
  • 如何使用 toJSON 更改序列化实体的属性名称?

    我想序列化一个属性 其名称与实体中的名称不同 Entity export class MyEntity This should be serialized with name column in JSON Column name strin
  • 如何更改列的堆叠顺序?

    使用 Bootstrap 3 我有一个非常简单的布局 例如 div class container div class row div class col sm 4 Header Content Left div div class col
  • 如何在CSS中使用边框的clip-path属性

    I have clip part达到 偷工减料 的效果 我想将背景更改为白色并使用绿色边框 问题是 当我将背景更改为白色时 角落是空的 如何在悬停时制作绿色边框角 test background red width 100px height
  • PHP 上次登录脚本[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想知道一种好的 有效的方法来判断我的用户上次登录是多久前的事 在用户个人资料中 我希望
  • php通过socket编程传递c结构体数据

    如何制作一个需要对具有以下结构的linux C套接字服务器执行socket sendto的php套接字客户端 typedef struct UI2 todo char rz LNG RZ 1 char saId LNG SAT ID 1 c
  • 需要复杂数据排序 SQL Server 的帮助

    我需要对数据库中的复杂数据进行排序的帮助 假设我的数据存储在这样的表中 Description JCB Excavator ECU P N 728 35700 Geo Prism 1995 GEO ABS 16213899 GEO pump
  • toLocaleDateString 的相反方法

    为了创建一个尊重浏览器文化的字符串 我们可以这样做 var myDate new Date var myDateString myDate toLocaleDateString myDate returns a string 这很好 因为如
  • JQuery AJAX 从表单发送文件数组

    我在某个地方找到了这段代码 可以在不刷新浏览器的情况下上传图片 然而 我不喜欢上传器文件 所以我决定使用我以前使用过的旧文件 问题在于它正在发送一个数组而不是来自 javascript 文件的字符串 它的目的是发送多个文件而不是仅发送一个文