Aliendreamer

returing file as attachment js

Nov 13th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. submit = () => {
  2.     let object = { ...this.props.values };
  3.     let formData = new FormData();
  4.     for (let property in object) {
  5.       if (object.hasOwnProperty(property)) {
  6.         formData.append(property, object[property]);
  7.       }
  8.     }
  9.     fetch(`${process.env.REACT_APP_SIMCARDS_API}/simcard/neworder/order`, {
  10.       method: "POST",
  11.       mode: "cors",
  12.       headers: {
  13.         Authorization: getBearerAccessToken()
  14.       },
  15.       responseType: "blob",
  16.       body: formData
  17.     })
  18.       .then(response => {
  19.         if (response.ok) {
  20.           return {
  21.             name: response.headers.get("X-File-Name"),
  22.             blob: response.blob()
  23.           };
  24.         } else {
  25.           throw Error(`Request rejected with status ${response.status}`);
  26.         }
  27.       })
  28.       .then(data => {
  29.         return Promise.resolve(data);
  30.       })
  31.       .then(data => {
  32.         return data.blob.then(blob => {
  33.           if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  34.             window.navigator.msSaveOrOpenBlob(blob, data.name);
  35.           } else {
  36.             var url = window.URL.createObjectURL(blob);
  37.             var a = document.createElement("a");
  38.             a.href = url;
  39.             a.download = data.name;
  40.             document.body.appendChild(a);
  41.             a.click();
  42.             a.remove();
  43.           }
  44.         });
  45.       })
  46. };
Add Comment
Please, Sign In to add comment