开源

其他类型的上传文件

2020-04-23  本文已影响0人  小生王浩

今天说下上传文件,古老的情况下html上传文件都是用的form上传的,但是现在基本都是异步结构,所以说,这种方式显然是没人再会去用,因为这种方式有个重要的问题,form表单上传的时候,点击提交,必定会跳转地址

今天说的异步,只是对于上传文件,因为其他的上传,基本ajax或request可以上传json数据的,就算是websocket也可以随意上传文本数据的,所以这些就不需要说了

    好了,现在开始码代码了

上传文件,主要的一个东东,就是formdata如果想要查看他具体的属性方法,可以去看官网上说的,地址:

https://developer.mozilla.org/zh-CN/docs/Web/API/FormData

    使用方法:

上面这个是我单独上传一个文件写的,uploadfile,就是一个ajax或request,然后返回的,就直接可以拿到返回数据了

api:

FormData创建:

语法new FormData(form)

参数:

form可选

一个HTML 上的<form>表单元素——当指定了,这种方式创建的FormData对象会自动将form中的表单值也包含进去,包括文件内容也会被编码之后包含进去。

FormData添加属性

语法formData.append(name, value);

     formData.append(name, value, filename);

参数 :

name

value中包含的数据对应的表单名称。

value

表单的值。可以是USVString 或 Blob (包括子类型,如 File)。

filename可选

传给服务器的文件名称 (一个 USVString), 当一个 Blob 或 File 被作为第二个参数的时候, Blob 对象的默认文件名是 "blob"。File 对象的默认文件名是该文件的名称。

注:append会把新值添加到已有值集合的后面

FormData删除属性

语法:FormData.delete(name)

        参数:

name

要删除的键(Key)的名字。

FormData 设置属性

语法:FormData.set(name,value)

    FormData.set(name,value,filename)

        这个里面的参数和append一个意思,但是这个是会把原有的属性的值给覆盖掉,也就是和append不同的地方

FormData 还有其他的一些函数,这里就不多介绍了,基本上就上面的那些就够用了,如果做判断或者其他类似数组的操作,可以看下下面函数:

其他方法

FormData.entries()

返回一个包含所有键值对的iterator对象。

FormData.get()

返回在 FormData 对象中与给定键关联的第一个值。

FormData.getAll()

返回一个包含 FormData 对象中与给定键关联的所有值的数组。

FormData.has()

返回一个布尔值表明 FormData 对象是否包含某些键。

FormData.keys()

返回一个包含所有键的iterator对象。

FormData.values()

返回一个包含所有值的iterator对象。

兼容性:

这个用法,其实用处挺多的,学会这个受益很大的

上一篇 下一篇

猜你喜欢

热点阅读