vue upload上传文件 elementui el-upload vue3 elementuiPlus

vue2 

action必选参数,上传的地址,可以为空
auto-upload是否在选取文件后立即进行上传
limit   最大允许上传个数
on-exceed文件超出个数限制时的钩子
file-list上传的文件列表, 
on-success文件上传成功时的钩子
on-error文件上传失败时的钩子
on-change文件状态改变时的钩子
before-remove删除文件之前的钩子
<el-upload
  class="uploadDemo"
  :auto-upload="false"
  :limit="5"
  action=""
  :on-exceed="handleExceed"
  :file-list="fileList"
  :on-success="onSuccess"
  :on-error="onError"
  :on-change="onChangeProduct"
  :before-remove="handleRemoveProduct" 
>
  <el-button class="upFileBtn" type="primary">选择文件</el-button>
  <div slot="tip" class="el-upload__tipText">
    温馨提示:最多可同时上传 5个文件,每个文件只允许上传2M大小。 附件仅限于文件名
    <br />
    后缀为.jpg、.png、.gif、.bmp、.jpeg、.tiff、.svg的文件,禁止exe、bat等格式文件上传!
  </div>
</el-upload>
 fileList: [],
handleExceed(files, fileList) {
  this.$message.warning(
    `当前限制选择 5 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
      files.length + fileList.length
    } 个文件`
  );
},
onSuccess(files, fileList) {
  this.$parent.findAllEnterprise();
  this.$message({
    message: "成功",
    type: "success",
  });
  this.handlerClose();
},
onError() {
  this.$message({
    message: "网络错误",
    type: "warning",
  });
},
handleRemoveProduct(file, fileList) {
  return this.$confirm(`确定移除 ${file.name}?`).then(() => {
    this.fileList.pop(file);
  });
},
onChangeProduct(file, fileList) {
  if (/.(jpg|png|gif|bmp|jpeg|tiff|svg)$/.test(file.name)) {
    // 当选择好上传文件时,将这个文件的信息push到数组中去
    this.fileList.push(file.raw);
  } else {
    this.$message({
      message: "请注意附件温馨提示",
      type: "warning",
    });
    fileList.pop(file);
    return;
  }
},

 点击上传按钮   将表单和文件一起上传

reportCommon() {
  const formData = new FormData(); // 转换成formDate格式进行传参
  for (let i = 0; i < this.fileList.length; i++) {
    formData.append(`multipartFile`, this.fileList[i]);
  }
  for (let i in this.reportInfo) {  // for in  快速赋值(在参数多的情况下)
    formData.append(i, this.reportInfo[`${i}`]); // 命名的字段和后台需要的字段需要一致
  }
  const reportCode = this.$_post("***", formData);  // 接口传参需要formDate形式
  if (reportCode.code == 200) {
    this.$message.success("****");
  } 
},

下面是在vue3里面使用方法

<el-upload
  ref="useUpload"  // 需要与定义的 变量/常量 保持一致
  style="width: 761px"
  class="upload-demo value"
  action="#"
  :limit="1"  // 设置限制 最大一个 因为我这边就需要上传一个
  :on-exceed="useHandleExceed"  // 超过限制长度调用方法
  :on-change="useHandleChange"  // 文件改变执行的方法  第一次上传也调用
  :on-remove="useHandleRemove"  // 文件删除执行的方法 默认文件删除也调用
  :auto-upload="false"
  :file-list="useFileList"  // 默认文件组  方便回显/再次编辑使用 
>
  <template #trigger>
    <div class="upUseFile"></div> <!-- 这里是一个图片样式 -->
  </template>
</el-upload>
// 引入需要的类型 (接口)
import type {UploadInstance, UploadProps, UploadRawFile} from "element-plus";

// 定义默认组
const useFileList = ref([]);

// 定义常量
const useUpload = ref<UploadInstance>();

// 删除事件 默认组删除也会调用此方法
const useHandleRemove: UploadProps["onRemove"] = (file, uploadFiles) => {
  // 因为后台返来的数据不太好处理 如果用户删除了此文件 就传空文件 没删除就不传
  const newFile = new File([], "");
  editTableCont.value.instructionsFile = newFile;
};

// 文件改变事件 改变就执行这个 
const useHandleChange: UploadProps["onChange"] = (uploadFile, uploadFiles) => {
  // 将得到的值进行赋值
  editTableCont.value.instructionsFile = uploadFile.raw;
};

// 文件超出限制进行调用
const useHandleExceed: UploadProps["onExceed"] = (files) => {
  // 因为是只上传一个文件 所以就直接清空内容
  useUpload.value!.clearFiles();
  // 将文件列表里面的第一个赋值给file
  const file = files[0] as UploadRawFile;
  file.uid = genFileId();
  // 手动赋值 file
  useUpload.value!.handleStart(file);
};


// 接口方法  下面是进行显示的 算是半个死的 只是显示作用
...{
   if ('文件路径' != null) {
      useFileList.value[0] = {
         name: '文件名',
         url: '文件路径',
      };
   }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猫和老许

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

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

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

打赏作者

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

抵扣说明:

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

余额充值