vue el-upload实现上传文件到后台的功能

26 篇文章 0 订阅
7 篇文章 1 订阅

vue 使用element-ui的el-upload实现上传文件到后台的功能


 1.添加el-upload控件

<el-upload
    :action="action"
    :file-list="modeList"
    :http-request="modeUpload"
>
    <el-button size="small" type="primary">上传</el-button>
</el-upload>
<el-button @click="upload">点击上传文件</el-button>
data() {
    return {
        action: 'https://jsonplaceholder.typicode.com/posts/',
        mode: {},
        modeList: []
    }
}

:action是必不可少但是却没什么作用的

:http-request可以覆盖默认的上传方法

 2.我配置的:action的值(就是官方文档示例的值)

action: 'https://jsonplaceholder.typicode.com/posts/'

3.:http-request函数内容,将上传成功的文件保存到mode里面,mode是自己在data里面定义的变量,初始值是mode:{}

modeUpload: function(item) {
      // console.log(item.file);
      this.mode = item.file
}

4.上传按钮的点击事件

upload: function() {
      let fd = new FormData()
      fd.append('templateFile', this.mode)
      axios.post('/api/reportRule', fd, {
         headers: {
          'Content-Type': 'multipart/form-data'
        }
      }).then(response => {
        console.log(response.data);
      })
    },

5.上传成功,后台可以读取到数据

  • 15
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
Vue上传文件后端可以通过以下步骤实现: 1. 创建一个文件上传的表单: ```html <template> <div> <input type="file" @change="handleFileUpload"> <button @click="uploadFile">上</button> </div> </template> <script> export default { data() { return { file: null } }, methods: { handleFileUpload(event) { this.file = event.target.files[0]; }, uploadFile() { let formData = new FormData(); formData.append('file', this.file); // 发送文件后端 axios.post('/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(response => { // 文件上传成功的处理逻辑 }) .catch(error => { // 文件上传失败的处理逻辑 }); } } } </script> ``` 2. 在 Vue 组件中引入 axios,用于发送请求: ```bash npm install axios --save ``` 3. 在后端接收文件的路由中,使用相应的架进行文件处理。下面是一个使用 Express.js 架接收文件的例子: ```javascript const express = require('express'); const multer = require('multer'); const upload = multer({ dest: 'uploads/' }); const app = express(); app.post('/upload', upload.single('file'), (req, res) => { // req.file 是上文件信息 // 对文件进行处理,保存或者进一步处理 res.send('文件上传成功!'); }); app.listen(3000, () => { console.log('服务器已启动,监听端口 3000'); }); ``` 在上面的例子中,使用了 multer 中间件来处理文件上传。上文件会被保存在 `uploads/` 目录下,你可以根据自己的需求修改保存位置。 以上就是在 Vue上传文件后端的基本步骤,你可以根据自己的需求进行相应的修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值