Element-plus文件上传

<el-upload
                 class="upload-demo"
                :action="uploadFileUrl"
                :on-success="handleSuccess"
                :file-list="fileList"
                :auto-upload="true"
                :limit="1"
                :on-change="beforeUpload"
                :data="{'xiangmuhao': scope.row.xiangmuhao}"
                :headers="uploadHeaders"
            >
              <template #trigger>
                <el-button type="primary">请选择上传资料</el-button>
              </template>&nbsp;&nbsp;
            </el-upload>
const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/hsmanuscript/qyzd/upload"); // 上传文件服务器地址
const uploadHeaders = ref({
  'Authorization': 'Bearer ' + Cookies.get('Admin-Token') // 让每个请求携带自定义token 请根据实际情况自行修改
});

/**文件上传成功的回调 */
const handleSuccess = (response, file, fileList) => {
  // 文件上传成功的回调,你可以在这里处理服务器返回的数据
  proxy.$alert(response.msg);
  uploadFlag.value = true;
  fileList = [];
  file =  null;
  getList();
  console.log(response);
};
/**上传文件之前的钩子,你可以在这里进行文件类型的检查、大小限制等*/
const beforeUpload = (file) => {
  myFile.value = file;
  //console.log(file.raw.type)
  // xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  // xls=application/vnd.ms-excel
  // jpg=image/jpeg
  // png=image/png
  // doc=application/msword
  // docs=application/vnd.openxmlformats-officedocument.wordprocessingml.document
  // pdf=application/pdf



  // 上传文件之前的钩子,你可以在这里进行文件类型的检查、大小限制等
  /*const isJPG = file.type === 'image/jpeg';
  const isPNG = file.type === 'image/png';
  const isLt500k = file.size / 1024 < 500;

  if (!isJPG && !isPNG) {
    proxy.$message.error('上传图片只能是 JPG/PNG 格式!');
  }*/
  return true//isJPG || isPNG
  /*if (!isLt500k) {
    this.$message.error('上传图片大小不能超过 500KB!');
  }
  return isJPG || isPNG && isLt500k;*/
};

const submitForm2 = (xiangmuhao) => {
  console.log("file", myFile.value)
  console.log("xiangmuhao", xiangmuhao)
  const formData = new FormData();
  formData.append('file', myFile.value.raw);
  formData.append('xiangmuhao', xiangmuhao);
  uploadFile(formData).then(
      response => {
        proxy.$alert(response.msg);
        uploadFlag.value = true;
        fileList.value = [];
        getList();
      }
  ).catch(e => {
    alert("文件上传失败");
  });


  // 提交表单的函数,你可以在这里发送请求到服务器,同时包含用户名和文件信息
  // 这里只是一个示例,你需要根据自己的需求进行实现
  // 你可以通过 axios 或其他 HTTP 客户端库发送请求到服务器
  // 在请求体中,你可以包含 form.value.username 和 fileList 的信息
};

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于文件上传Element Plus提供了`el-upload`组件。你可以使用它来实现文件上传功能。下面是一个简单的示例代码: 首先,确保你已经安装了Element Plus组件库: ```shell npm install element-plus ``` 然后,在需要使用文件上传的地方,引入`el-upload`组件和相关样式: ```html <template> <el-upload action="/your-upload-url" :on-success="handleSuccess" :before-upload="beforeUpload" :file-list="fileList" multiple drag list-type="text" > <i class="el-icon-upload"></i> <div class="el-upload__text">将文件拖到此处,或点击上传</div> </el-upload> </template> <script> import { ElUpload } from 'element-plus'; export default { components: { ElUpload, }, data() { return { fileList: [], }; }, methods: { handleSuccess(response, file, fileList) { // 处理上传成功的回调函数 console.log('上传成功', response); }, beforeUpload(file) { // 在上传之前的钩子函数,可以在这里进行一些验证操作 console.log('文件大小:', file.size); return true; // 返回true表示继续上传,false表示取消上传 }, }, }; </script> <style> .el-upload__text em { color: #409eff; } </style> ``` 上述代码中,`action`属性是上传文件的URL地址,你需要将其替换为你实际的上传接口地址。`on-success`属性是上传成功的回调函数,你可以在其中处理上传成功后的逻辑。`before-upload`属性是上传前的钩子函数,你可以在其中进行文件验证等操作。 希望以上代码能帮助到你!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值