文件应该如何上传

发布于 2022-09-06 12:44:50 字数 769 浏览 17 评论 0

想用koa2写接收客户端上传文件并存储的功能但是用ctx.body没有接收到post给服务器的文件
有几个地方不是很清楚 有知道其中任意问题的希望能来解惑,不胜感激,能解决任意问题必赞同,谢谢
1、 <input type="file" multiple onchange="fileinfo(this.files)" name="up"> 应该是可以选择多个文件,但是我还是只能选择一个,是不是我的写法问题?
2、在只有一个文件的情况下,这个文件是不是onchange事件的参数列表的第一个,也就是如下代码中的files[0]?但是我输出的只有文件信息,这个文件是blob格式的吗?

 function fileinfo (files) {
      console.log(files[0])
  }

3、文件上传服务器是否可以直接用XMLHttpRequest,还是应该responseType = blob,或者其他什么方式向服务器发送文件

var xhr = new XMLHttpRequest();
    xhr.open('POST', 'http://localhost:3000');
    xhr.setRequestHeader('')
    xhr.send(a[0]) //这里的a就是onchange的参数

4、不知道是不是我之前流程写的不对,总之ctx.body没有拿到数据.我的input是在form内的,但并非通过form上传,是不是还需要什么中间件进行数据接收,才可以拿到客户端post的数据?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

坏尐絯 2022-09-13 12:44:50

可以用formData上传文件

╄→承喏 2022-09-13 12:44:50

ko2 不了解,

1、 <input type="file" multiple onchange="fileinfo(this.files)" name="up"> 应该是可以选择多个文件,但是我还是只能选择一个,是不是我的写法问题?

写法应该没问题,你可以一次选择多个,但是多次选择,应该只会保留最后一个(猜测);

2、选中文件通过 HTMLInputElement.files 属性返回 — 返回值是一个 FileList 对象,这个对象是一个包含了许多 File 文件的列表。File 对象是特殊类型的 Blob,且可以用在任意的 Blob 类型的 context 中。比如说, FileReader, URL.createObjectURL(), createImageBitmap(), 及 XMLHttpRequest.send() 都能处理 Blob 和 File。

3、4、没做过不知道;

┈┾☆殇 2022-09-13 12:44:50

应该是 input name=up[] 设置成数组 这样才可以接受多个文件,不然接受的总是最后一个文件?不知道是不是

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文