关于element-ui中的upload组件已表单的形式传递FormData

对于一些古老的项目,可能后端需要使用form表单的形式的接收,并且还会规定接收的key值

因为咱们项目中使用了element-ui,可以使用upload,但默认的upload是没办法使用form表单提交,并设置key的值

但element-ui给我们提供了一个http-request的方法,覆盖默认的上传行为,可以自定义上传的实现

 

代码:

// template

<el-upload style="height:auto" :http-request="UploadImage" action="/" :limit="1" :show-file-list="false">
    <h1>上传头像</h1> 
</el-upload>

 

// methods

UploadImage(param) { // 文件提交
            const formData = new FormData()
            formData.append('Filedata', param.file) // 要提交给后台的文件,并且字段的key为Filedata
            console.log(formData.get('Filedata')); //FormData私有类对象,访问不到,可以通过get判断值是否传进去
            let config = { // 添加请求头
                headers: { 'Content-Type': 'multipart/form-data' }
            };
            axios.post(this.BASEURL + '/project/upLoadPic', formData, config)
                .then(res => {
                    console.log(res, 'sssss');
                    this.imgUrl = res.picurl.replace(/\|\|/, '')
                    let reg = /(\|\|)(\S*)/
                    this.imgUrl2 = reg.exec(res.picurl)[2]
                    console.log('imgUrl2', this.imgUrl2)
                })
},

 

 

你可以按照以下步骤将前端使用 element-ui 的上传组件将文件上传到后端并保存到数据库: 1. 前端页面使用 element-ui 的上传组件进行文件选择和上传操作。确保你已经正确引入了 element-ui 的库文件和样式。 2. 在前端代码,监听上传组件的 change 事件,获取用户选择的文件。可以使用 `@change` 属性或者 JavaScript 的事件监听函数来实现。 3. 在事件处理函数,使用 JavaScript 的 FormData 对象创建一个表单数据对象,并将选的文件添加到表单。例如: ```javascript let formData = new FormData(); formData.append('file', event.target.files[0]); ``` 4. 使用 axios 或者其他的网络请求库发送 POST 请求到后端的接口。确保你已经正确引入了相应的库文件。 5. 在后端代码,接收前端发送的请求并处理文件上传操作。具体的实现方式取决于你使用的后端技术栈,这里以 Spring MVC 为例: - 在控制器定义一个接收文件上传请求的方法,使用 `@RequestMapping` 或者其他的注解标识该方法为处理上传请求的方法。例如: ```java @RequestMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) { // 处理文件上传逻辑 // 将文件保存到数据库 return "success"; } ``` - 在方法,使用 `@RequestParam` 注解获取前端传递的文件,并将其保存到数据库。具体的保存逻辑根据你的业务需求进行实现。 注意:在保存文件到数据库之前,你可能需要先将文件保存到本地或者将文件内容转换为合适的格式,然后再进行数据库的存储操作。 6. 在前端代码,根据后端返回的处理结果进行相应的提示或者页面跳转。 这样,你就可以实现将前端使用 element-ui 上传的文件通过后端保存到数据库了。当然,具体的实现方式还需要根据你的业务需求和后端技术栈进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值