js 文件转base64上传服务器

HTML:

<input type="file"  (change)="onChange($event)"   value=" " id='fileUpload' >   / /  input会在页面上渲染成一个按钮,点击按钮,会打开本地文件夹, 重点在 type='file';

  

 
JS:
onChange(e){
      console.log(e);
      const file = e.srcElement.files[0]; // 获取从上传本地文件转换的数据
      const isJpgOrPng = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';  // 判断文件类型
      if (!isJpgOrPng) {
        this.message.error('You Can Only Upload Xlsx File!');
        return;
      }
      const data = {
        Base64: null,
        FileName: file.name
      };
      const reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = (e) => {
        data.Base64 = e.target['result']; // 获取文件装换后的Base64位文件
        data.Base64 = data.Base64.split('base64,')[1];  // Base64位文件获取时,不能直接传给后台,要将base64文件开头的前缀剔除,不然服务器会提示有中文字符,无法解析 
        this.apiService.post('XXX\XXX\X', data).subscribe(res => {
          if ( res.Result ) {
            this.message.create('success', 'Import Succeeded');
          }
        });
        // console.log(e.target.result);
      };
    }

  

 

posted @ 2020-04-23 10:09  归去来兮cjy  阅读(1566)  评论(0编辑  收藏  举报