上传文件以及文件上传的时候传参

本文对比了Vue项目中使用`$http`上传文件的两种方法:一是通过FormData上传文件并设置名称,二是利用FileReader预览后再POST。详细介绍了如何在imgUploadLogin方法中处理这两种上传策略。
摘要由CSDN通过智能技术生成

上代码:

:http-request="(file)=>imgUploadLogin(file, '上传的参数')"

这是upload组件的上传文件成功时的钩子。

文件上传一、

methods:{
	imgUploadLogin(file, name) {
		//name就是上传的参数
		let content = file.file;
        let data = new FormData();
        data.append('file', content);

        this.$http.post(api, data, true).then( res => {
            if( res.data.code == 1 ){
                this.file.name = res.data.data.fileOriginalName   //文件名称
                this.file.url = res.data.data.fileUrl		//文件路径
            }
        })
	}

}

图片上传二、

methods:{
	imgUploadLogin(file, name) {
		//name就是上传的参数
		let img = new Image();
        img.src = URL.createObjectURL(file.file);
        img.onload = () => {
             let param = new FormData();
             param.append("type", name); //这在里我穿的是类型,因为接口需要类型
             param.append("file", file.file);
             this.$http
             .post(api, param, true)
             .then(res => {
                 if(res.data.code === 1) {
                     this.$message({
                         showClose: true,
                         message: "上传成功",
                         type: "success"
                     });
                 } else {
                     this.$message({
                         showClose: true,
                         message: res.data.message,
                         type: "error"
                     });
                 }
             })
             .catch(err =>{
                 console.log(err);
             })
         }
	}

}
在前端开发中,尤其是使用Element UI库的时候,如果你需要实现文件上传功能,通常会通过`el-upload`组件来处理。这个组件的API接收几个关键参数: 1. `action` (必填):这是上传文件的URL地址,服务器端用于接收并处理上传的数据。 2. `on-change` 或 `on-preview`:这两个都是事件处理器,`on-change`会在用户选择文件后触发,而`on-preview`则在预览文件时触发。 3. `before-upload`:这是一个钩子函数,可以在上传前做一些验证或操作,例如检查文件大小、类型等。 4. `data`:这是一个对象,可以包含额外的自定义数据随请求一起发送到服务器。 5. `file-list`:一个数组,存储已经选中的文件信息,可用于展示文件列表。 6. `http-request`:如果需要自定义HTTP请求配置,如设置headers或上传进度等,可以提供一个函数返回Promise。 例子如下: ```javascript <template> <el-upload :action="uploadUrl" :on-change="handleChange" :before-upload="beforeUpload" :data="uploadData" list-type="text" > <i class="el-icon-upload"></i> Click to choose file </el-upload> </template> <script> export default { data() { return { uploadUrl: 'your-server-url', uploadData: {}, }; }, methods: { handleChange(file) { console.log('Selected file:', file); }, beforeUpload(file) { // Perform some custom validation here if (file.size > 1024 * 1024 * 5) { // 5MB limit alert('File size exceeds the limit!'); return false; } return true; // or return an async function if needed }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值