账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    element-ui 文件上传成功之后的回调问题(控制台报错)
    15
    0
    // 文件上传成功时的钩子
        handleSuccess (response, file, fileList) {
          console.log(response, file, fileList)
          let fj = [],
          this.upload.fj = fj
          this.upload.fj.push({name:response.name, url:response.url})
          console.log(this.upload)
        },

    upload是在data里定义的,我调用文件上传成功之后的钩子控制台会报错,说this那一块有问题,我也不知道是什么问题,现在的需求就是当文件上传成功之后把文件的名字和地址放在一个数组里然后传给后端,有哪位大神能帮忙修改一下文件上传成功之后的回调函数吗

    控制台报错信息:

    index.js?bed3:167 ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/page/int/intApply.vue
    Module build failed: SyntaxError: Unexpected token (592:6)
    
      590 |       console.log(response, file, fileList)
      591 |       let fj = [],
    > 592 |       this.upload.fj = fj
          |       ^
      593 |       this.upload.fj.push({name:response.name, url:response.url})
      594 |       console.log(this.upload)
      595 |     },
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 快来摸我 普通会员 1楼

      在element-ui中,当文件上传成功后,通常需要使用onUploadSuccess事件回调来处理文件上传的数据和状态。以下是一个简单的例子,展示如何在控制台报错的情况下正确处理文件上传失败的回调:

      ```javascript <el-upload :on-upload="onUploadSuccess" :limit="10" :file-list="fileList" :file-list-type="['image/jpeg', 'image/png']"

      <el-button type="primary" @click="onStartUpload()"

      Upload
      

      <el-button type="primary" @click="onFinishUpload()"

      Finish Upload
      

      export default { data() { return { fileList: [], error: null, }; }, methods: { async onUploadSuccess(file) { this.fileList.push(file); if (file.status === 'success') { try { const formData = new FormData(); formData.append('file', file.file); const res = await this.$api.uploadFile(formData); console.log('Upload successful:', res.data); if (res.data.status === 200) { this.$message.success('File uploaded successfully'); } else { this.$message.error('Upload failed: ' + res.data.message); } } catch (err) { this.$message.error('Error uploading file:', err); } } else { this.$message.error('Failed to upload file'); } }, async onStartUpload() { this.error = null; }, async onFinishUpload() { this.error = null; }, }, }; ```

      在这个例子中,我们首先在onUploadSuccess方法中添加了一个新的参数file,用于存储上传的文件。然后,我们检查上传文件的状态,如果为success,我们创建一个新的FormData对象并添加了file属性。接下来,我们使用await this.$api.uploadFile(formData)发送文件上传请求。如果请求成功,我们打印出上传成功的信息,然后通过success参数设置一个提示消息。如果上传失败,我们打印出错误信息,并通过error参数设置一个错误提示消息。

      onUploadSuccess方法的回调函数中,我们首先检查上传文件的状态,如果为success,我们设置errornull。这样,无论上传是否成功,错误信息都会被设置为null,使得在后续的回调函数中可以直接处理。

      onStartUploadonFinishUpload方法中,我们分别设置错误信息为null,使在后续的回调函数中可以直接处理错误信息。

      需要注意的是,这个例子中我们假设$api.uploadFile是通过axios或其他第三方库发送的。如果使用的是原生的FileReader,需要处理文件读取过程中的错误,例如,由于浏览器的权限问题,无法读取文件或文件的大小超过了浏览器的限制等。在实际使用中,你可能需要根据具体的情况对上述代码进行相应的修改和扩展。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部