文件应该如何上传
想用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可以用formData上传文件
ko2 不了解,
写法应该没问题,你可以一次选择多个,但是多次选择,应该只会保留最后一个(猜测);
3、4、没做过不知道;
应该是 input name=up[] 设置成数组 这样才可以接受多个文件,不然接受的总是最后一个文件?不知道是不是