ajaxFile 上传文件方法

return: Promise

使用指南

全局使用 (推荐)
  1. //main.js
  2. import {req} from './common/request/request.js'; //文件路径请换成本地路径
  3. req.baseuUrl = 'https://www.easy-mock.com/mock/5ca6ec41215a7b66ff10343d/' //设置公共请求前面部分,全局生效
  4. //或者这样
  5. req.defaultUp.url='https://www.easy-mock.com/mock/5ca6ec41215a7b66ff10343d/' //只针对于上传接口
  6. req.defaultUp.baseData={ //设置公共参数,默认为空,设置此参数后每次发送请求都会带上此参数
  7. token:'000-000-000-000-defaultUp'
  8. }
  9. Vue.prototype.$req = req; //挂载到原型上
局部使用
  1. import {req} from './common/request/request.js';
  2. const res = await req.ajaxFile({
  3. path: "https://www.easy-mock.com/mock/5ca6ec41215a7b66ff10343d/example/upload",
  4. title:'正在上传'
  5. filePath:'' //文件临时路径,或者永久路径
  6. fileName:'' //需要上传的文件名
  7. })

注意事项


此方法只能一次上传一个,如果需要批量上传则调用startUpFiles方法。


代码演示

1.简单使用
  1. const res = await req.ajaxFile({
  2. path: "example/upload",
  3. filePath:'' //文件临时路径,或者永久路径
  4. fileName:'' //需要上传的文件名
  5. })
2.带上传提示
  1. const res = await req.ajaxFile({
  2. path: "example/upload",
  3. title:'正在上传',
  4. filePath:'' //文件临时路径,或者永久路径
  5. fileName:'' //需要上传的文件名
  6. })
3.带额外参数上传
  1. const res = await req.ajaxFile({
  2. path: "example/upload",
  3. title:'正在上传',
  4. filePath:'' //文件临时路径,或者永久路径
  5. fileName:'' //需要上传的文件名
  6. extra:{
  7. name:'hhyang'
  8. }
  9. })
4.单个上传文件带拦截
  1. const res = await req.ajaxFile({
  2. path: "example/upload",
  3. title:'正在上传',
  4. filePath:'' //文件临时路径,或者永久路径
  5. fileName:'' //需要上传的文件名
  6. abort:bt=>{
  7. bt.abort(); //拦截此次上传
  8. },
  9. extra:{
  10. name:'hhyang'
  11. }
  12. })
5.捕捉请求错误
  1. try{
  2. const res = await req.ajaxFile({
  3. path: "example/upload",
  4. title:'正在上传',
  5. filePath:'' //文件临时路径,或者永久路径
  6. fileName:'' //需要上传的文件名
  7. abort:bt=>{
  8. bt.abort(); //拦截此次上传
  9. },
  10. extra:{
  11. name:'hhyang'
  12. }
  13. })
  14. }catch(e){
  15. console.log(e); //请求发生了错误
  16. }
6.自定义header
  1. const res = await req.ajaxFile({
  2. path: "example/upload",
  3. title:'正在上传',
  4. header:{
  5. 'content-type': 'multipart/form-data;'
  6. },
  7. filePath:'' //文件临时路径,或者永久路径
  8. fileName:'' //需要上传的文件名
  9. extra:{
  10. name:'hhyang'
  11. }
  12. })

全局Options

属性名类型默认值描述
baseuUrlString请求路径,开发者可以把公共的部分定义在这里
isUpOpenDownBooleanfalse是否在上传js中引入下载的js,支持动态修改

baseuUrl修改时会生效:上传,下载接口的公共部分。


全局defaultUp

属性名类型默认值描述
urlString用于修改上传接口地址,赋值此值会覆盖通过baseuUrl赋值的值
baseDataObject设置基础参数,也就是说上传接口每次请求都会带上这个参数
headerObject{'content-type': 'multipart/form-data;'}用于设置上传文件的类型

全局defaultUp 设置完成后针对全局有效,ajaxFile方法默认在你没传值的情况下优先采用的全局参数。可以通过向ajaxFile方法传递参数覆盖全局参数详细


ajaxFile参数

属性名类型描述
pathString上传路径,可以是整个路径(设置了全局url则无效),也可以是相同路径后拆分出来的后半部分
titleBoolean/String是否显示上传文件提示 默认为false不显示, 传入字符串则显示 推荐7个字内
headerObject自定义整个header。默认取全局配置中的header
filePathString文件临时路径,或者永久路径
fileNameString需要上传的文件名
extraObject需要除上传文件意外额外的参数
abortFunction返回一个 requestTask 对象,通过 requestTask,可中断请求任务。或者是监听上传进度