vue上传图片formdata

55 篇文章 3 订阅

Axios 中的文件上传(Upload File)方法

const axios = require('axios');

const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];

const formData = new FormData();
formData.append('file', file);

axios.post('/upload', formData, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
}).then(response => {
  console.log('上传成功', response.data);
}).catch(error => {
  console.error('上传失败', error);
});

diy

import http from '@/utils/http';
import lrz from 'lrz';

export const upImage = async file => {
  const { formData } = await lrz(file);
  return http.post('/common/uploadali', formData, {
    headers: { 'Content-Type': 'multipart/form-data' }
  });
};
//vant
 async upload(file) {
      file.status = 'uploading';
      try {
        const { data } = await upImage(file.file);
        file.status = 'done';
        file.remoteUrl = data.url;
      } catch (error) {
        file.status = 'failed';
      }
    },

小程序


/**
 * 上传图片
 * @param {String} tempFilePath 图片路径
 */
export const uploadImage = tempFilePath => {
  return wxp.uploadFile({
    url: baseURL + '/weapp' + '/common/uploadali',
    filePath: tempFilePath,
    name: 'file',
    formData: {
      file: tempFilePath,
    },
    header: {
      'Content-Type': 'multipart/form-data',
      token: wx.getStorageSync('token'),
      ...headers,
    },
  })
}

const { data } = await uploadImage(wxFile[0].path)

vue_原生axios

    var formdata = new FormData()
    //formdata本身是个对象,参数名为file
    formdata.append('file', file.file)
    Axios({
     method: 'post',
     url: 'http://192.168.0.35/api/common/upload',
     headers: {
      'Content-Type': 'multipart/form-data',
      token: localStorage.getItem("token") || "121324"
     },
     data:formdata,  //formdata本身是个对象,参数名为file
    }).then(data => {
     console.log(2222222222222,data)
    });
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 中,`FormData` 是一个 JavaScript 对象,它提供了一种方便的方式来构建和处理表单数据。 `FormData` 对象允许你通过 JavaScript 收集表单数据,并将其组织成键值对的形式。这使得在发送 AJAX 请求时,可以轻松地将表单数据作为请求的主体进行发送。 在 Vue 中,你可以使用 `FormData` 对象来处理包含文件上传的表单数据,或者发送复杂的表单数据。以下是一个在 Vue 中使用 `FormData` 的示例: ```vue <template> <div> <form @submit.prevent="submitForm"> <input type="text" v-model="name"> <input type="file" ref="fileInput"> <button type="submit">Submit</button> </form> </div> </template> <script> export default { data() { return { name: '', }; }, methods: { submitForm() { const formData = new FormData(); formData.append('name', this.name); formData.append('file', this.$refs.fileInput.files[0]); // 发送 AJAX 请求 axios.post('/api/submit', formData) .then(response => { // 处理响应 }) .catch(error => { // 处理错误 }); } } } </script> ``` 在上述示例中,我们通过 `FormData` 对象创建一个空的表单数据对象 `formData`。然后,使用 `append()` 方法将表单字段的键值对添加到 `formData` 中,包括一个文本字段 `name` 和一个文件字段 `file`。我们通过 `$refs` 引用获取到文件输入框的 DOM 对象,然后使用其 `files` 属性来获取用户选择的文件。 最后,我们使用 axios 或其他 AJAX 库来发送包含表单数据的 POST 请求。在这个例子中,我们将 `formData` 作为请求的主体进行发送。 总结起来,`FormData` 是在 Vue 中用于构建和处理表单数据的对象,特别适用于处理包含文件上传或复杂数据的表单。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小曲曲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值