@olenbetong/file-uploaddeprecated

File upload API for AppframeWeb

Usage no npm install needed!

<script type="module">
  import olenbetongFileUpload from 'https://cdn.skypack.dev/@olenbetong/file-upload';
</script>

README

FileUploader

A simple class used to upload File or Blob objects to Appframe data sources.

Install

$ npm install @olenbetong/file-upload

Usage

The constructor takes an options parameter with 4 possible options:

  • articleId - ID of the article where the data object is (will use af.article.id if not set)
  • dataObject - The data object to upload to
  • fieldName (optional) - Field name (for binary fields?)
  • primKey (optional) - Use to upload to an existing record(?)

To get status updates, use the attachEvent and detachEvent methods to subscribe to the onProgress event. The event handler will be called with an object with loaded and total properties. When the upload is finished, an onUploaded event will be triggered. If the upload fails, an onUploadFailed event will be triggered. The upload method returns a promise that can be used instead of the onUploaded and onUploadFailed events.

The uploadmethod takes 3 parameters:

  • fileOrBlob - The file or blob object to upload
  • fields (optional) - Additional fields that should be set on the record (linked fields from master objects are automatically added)
  • fileName (optional) - Name of the file. Only used for blob objects.
let uploader = new FileUploader({ dataObject });
uploader.attachEvent("onProgress", updateProgress);

function updateProgress({ loaded, total }) {
  document.querySelector("#progress").innerText = `${loaded}/${total} uploaded`;
}

let files = input.files;
for (let file of files) {
  try {
    await uploader.upload(file, { RelatedID: 42 });
  } catch (error) {
    alert(error.toString());
  }
}