当前位置: 首页 > 知识库问答 >
问题:

前端 - 多文件如何用数组格式上传?

赫连坚
2024-05-14

关于多文件上传传参时可不可以这样字传值file:[二进制1,二进制2,二进制3]

image.png 我现在这么写他的传值是files:(二进制),file:(二进制),file:(二进制)

共有2个答案

杨晟
2024-05-14

都append到同一个字段里就是数组

巫新知
2024-05-14

在Web开发中,多文件上传通常是通过HTML的<input type="file" multiple>元素来实现的。在后端接收时,这些文件通常以数组的形式呈现,而不是以单个二进制数据块拼接的形式。

关于你的问题,直接以file:[二进制1,二进制2,二进制3]这样的格式上传多个文件是不常见的,也不是标准的做法。这是因为HTTP协议本身不支持这种格式的数据结构,并且服务器端接收到的数据通常会是原始的文件字节流。

更常见的做法是在HTML表单中这样设置:

<form action="/upload" method="post" enctype="multipart/form-data">    <input type="file" name="files[]" multiple>    <input type="submit" value="Upload"></form>

注意name="files[]"中的方括号,这告诉浏览器这个字段可以接受多个值。当表单提交时,每个选中的文件都会作为表单数据的一部分发送,并且服务器端可以通过这个名称(files[])来访问它们。

在服务器端(例如,使用Node.js的Express框架),你会收到一个名为files的数组,其中包含了所有上传的文件:

const express = require('express');const multer = require('multer'); // 一个处理multipart/form-data的中间件const upload = multer({ dest: 'uploads/' }); // 配置multer存储上传文件的位置const app = express();app.post('/upload', upload.array('files[]', 12), (req, res) => {    // req.files 是一个数组,包含了所有上传的文件    console.log(req.files);    res.send('Files uploaded successfully');});app.listen(3000, () => console.log('Server started on port 3000'));

在上面的代码中,multer是一个处理multipart/form-data的中间件,它能够将上传的文件解析成Node.js可以理解的格式。upload.array('files[]', 12)是一个中间件函数,它会解析名为files[]的字段,并最多接受12个文件。

至于你提到的files:(二进制),file:(二进制),file:(二进制)这种格式,看起来像是HTTP请求的某部分,但这并不是标准的表单数据编码方式。如果你是在查看网络请求的原始内容,那么这可能是请求体的一部分,但通常这些二进制数据会被编码为multipart/form-data格式,并由服务器端的相应中间件来解析。

总之,多文件上传应该使用标准的multipart/form-data编码方式,并且在服务器端使用相应的中间件来解析这些文件。直接以你提到的数组格式上传多个文件的二进制数据并不是一种常见或推荐的做法。

 类似资料:
  • vue函数式组件functional,如何调用方法向父组件传值? 调用方法会报错:TypeError: _vm.itemClick is not a function

  • 我正在尝试使用@Controller和@Request estMap使用Spring 3.1.2上传多个文件。 下面是我做的和我的配置。 格式 : 控制器方法: 我的会议: 提交表单确实会转到添加文件系统映像方法。locId 参数的数据位于此处,但“文件”参数未绑定。无论我尝试过什么参数/字段名称/参数类型的组合,它都是系统性的空值。 HttpServletRequest参数是一个org.spri

  • 我有一个像这样的excel格式: 我有两个函数来填充数据。这个是填充细节。 这个用来填充总数 问题是,如果我有超过5条记录,数据将被填充到第20行,我的格式被破坏。我的预期结果是,如果有超过5条记录,那么它将为每个添加的记录添加2行(作为格式),并且我的SUM始终是工作表的最后2行。 我正在考虑将 SUM 性别删除到另一个工作表中,并将其复制到最后一个工作表中,直到详细信息完成。但是我遇到了一些问

  • 我正在使用spring批处理入站文件,下面是我的用例 将收到包含15个CSV格式文件的zip 我需要并行处理它们 在处理完所有文件后,需要进行一些计算并发送报告 有人能建议我如何使用Spring Batch实现这一点吗?

  • 问题内容: 我仅使用1个数据插入json文件。 这就是我的json文件的外观。我只想在最后添加1个播放器。 我的问题是,如何在最后添加播放器?我也想知道如何更新 在匹配数组中。 问题答案: 只需解码json字符串,然后使用数组推送 对于你的情况 只需检查print_r($ arr);的值即可。我希望这就是你想要的。:)

  • 我需要计算一个单元格在一个odt上的一个表,文件,并应用条件格式,如果值>0。不在speedsheet中,是用于writer的