js 使用fetch来上传文件 formdata()

简介: js 使用fetch来上传文件 formdata()
 <input type="file" name="" id="file">
    <script>
        // 文件上传
        // 流程: 
        // 1. 客户端将文件数据发送给服务器
        // 2. 服务器保持上传的文件到服务端
        // 3. 服务器响应给客户端一个文件访问地址
        // 键的名称(表单域名称): 服务端要求
        // 请求方法: Post
        // 请求表单的格式: 一般为 multipart/form-data
        // 请求体重必须包含一个键值对,键的名称是服务器要求的名称,值是文件数据
        // HTML中,JS仍然随意获取文件数据,但是可以获取到input元素中,被用户选中的文件数据
        async function upload() {
            const inp = document.getElementById("file");
            if (inp.files.length === 0) {
                alert("请选择上传文件")
                return false;
            }
            // 这里的请求体自己构建比较麻烦,一般使用HTML5里面的formData来构建
            const formData = new FormData();
            formData.append("key", inp.files[0]);
            const url = "xxxx.xxx.xxxx";
            const resp = await fetch(url, {
                method: "POST",
                body: formData //自动修改请求头,formdata的默认请求头的格式是 multipart/form-data
            })
            const res = await resp.json();
            // res 就是服务器返回的结果
        }
    </script>
相关文章
|
存储 文件存储
如何使用Nest.js 上传文件及自定义文件名保存
在 Nest.js 中进行文件上传并自定义文件名保存的过程相对简单
484 0
|
JavaScript
JS 上传文件--获取视频文件宽高
JS 上传文件--获取视频文件宽高
395 0
|
JavaScript 前端开发 应用服务中间件
【前端项目笔记】原生js上传文件及文件转换成base64、blob类型
项目中经常会用到上传图片上传视频等功能,由于后端nginx限制,经常要进行文件转化才能上传,大文件可能还要进行切片上传处理。
651 1
|
3月前
|
存储 JavaScript 前端开发
JS上传文件(base64字符串和二进制文件流)
这篇文章介绍了两种JavaScript文件上传的方法:使用FileReader对象将文件读取为base64字符串上传,以及使用FormData对象以二进制文件流的形式上传文件,包括如何处理文件选择、读取和上传的详细代码示例。
439 2
JS上传文件(base64字符串和二进制文件流)
|
4月前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第3天】前端开发中的异步基石:AJAX与Fetch。AJAX,使用XMLHttpRequest,处理跨域、回调地狱和错误处理。Fetch,基于Promise,简化请求,但需注意默认无跨域头和HTTP错误处理。两者各有优劣,理解其问题与解决策略,能提升前端应用的性能和用户体验。
140 24
|
4月前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第9天】JavaScript进阶:AJAX与Fetch API对比。AJAX用于异步数据交换,XMLHttpRequest API复杂,依赖回调。Fetch API是现代、基于Promise的解决方案,简化请求处理。示例:`fetch(&#39;url&#39;).then(r =&gt; r.json()).then(data =&gt; console.log(data)).catch(err =&gt; console.error(err))`。注意点包括检查HTTP状态、错误处理、CORS、Cookie和超时。Fetch提高了异步代码的可读性,但需留意潜在问题。
101 0
|
JavaScript Java 开发工具
JS:Vue项目浏览器直接上传文件到阿里云OSS
JS:Vue项目浏览器直接上传文件到阿里云OSS
1426 0
|
6月前
|
JSON 前端开发 JavaScript
JavaScript学习 -- fetch的使用
JavaScript学习 -- fetch的使用
113 0
|
JSON 前端开发 JavaScript
JavaScript学习 -- fetch的使用
JavaScript学习 -- fetch的使用
127 0
|
XML 存储 JSON
【JavaScript】爆肝 2 万字!一次性搞懂 Ajax、Fetch 和 Axios 的区别~(上)
【JavaScript】爆肝 2 万字!一次性搞懂 Ajax、Fetch 和 Axios 的区别~(上)
【JavaScript】爆肝 2 万字!一次性搞懂 Ajax、Fetch 和 Axios 的区别~(上)