Advertisement
info1atual

Salvar imagem em base64

Sep 14th, 2017
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. handleCommit() {
  2.         if (this.state.files.length === 0) {
  3.             this.setState({
  4.                 openDlgImagesZero: true,
  5.             });
  6.             return false;
  7.         }
  8.         this.setState({ openSend: true });
  9.         let link = "";
  10.         let files = this.state.files.length;
  11.         let idPropaganda = this.state.commit;
  12.         let textInfo = this.state.textInfo;
  13.         let ctx = this.context;
  14.         if (this.state.files !== null) {
  15.             let fileUploadRef = firebase.storage().ref();
  16.             for (let i = 0; i < this.state.files.length; ++i) {
  17.                 let BASE64_MARKER = ';base64,';
  18.                 if (this.state.files[i].img.indexOf(BASE64_MARKER) === -1) {
  19.                     let parts = this.state.files[i].img.split(',');
  20.                     let contentType = parts[0].split(':')[1];
  21.                     let raw = decodeURIComponent(parts[1]);
  22.                     this.state.files[i].img = new Blob([raw], { type: contentType });
  23.                 } else {
  24.                     let parts = this.state.files[i].img.split(BASE64_MARKER);
  25.                     let contentType = parts[0].split(':')[1];
  26.                     let raw = window.atob(parts[1]);
  27.                     let rawLength = raw.length;
  28.                     let uInt8Array = new Uint8Array(rawLength);
  29.                     for (let i = 0; i < rawLength; ++i) {
  30.                         uInt8Array[i] = raw.charCodeAt(i);
  31.                     }
  32.                     this.state.files[i].img = new Blob([uInt8Array], { type: contentType });
  33.                 }
  34.                 let thumb = this.state.filesThumb[i].img;
  35.                 let name = new Date().toISOString().slice(0, 19).replace('T', ' ') + "-" + [i] + ".jpg";
  36.                 let fileNameSave = Util.toHex(name);
  37.                 this.state.files[i].img.lastModifiedDate = new Date();
  38.                 let metadata = { contentType: 'image/jpeg' };
  39.                 let uploadTask = fileUploadRef.child('images/agencias/' + window._agencia + '/' + fileNameSave).put(this.state.files[i].img, metadata);
  40.                 uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED,
  41.                     function (snapshot) {  }, function (error) {
  42.                         switch (error.code) {
  43.                             case 'storage/unauthorized':
  44.                                 //
  45.                                 break;
  46.                             case 'storage/canceled':
  47.                                 //
  48.                                 break;
  49.                             case 'storage/unknown':
  50.                                 //
  51.                                 break;
  52.                         }
  53.                     }, function () {
  54.                         let downloadURL = uploadTask.snapshot.downloadURL;
  55.                         DataPP._comitarPropaganda(idPropaganda, textInfo, downloadURL, thumb,
  56.                             function (response) {
  57.                                 ctx.router.push('/propagandas?status=' + 4);
  58.                             }.bind(this));
  59.                     });
  60.             }
  61.         }
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement