Skip to content

Save Files From Byte Arrays

In addition to the classic file upload, files can be saved by uploading a byte array which becomes the content of the saved file.

Method

// Save file in a remote path in the Backendless file storage. The path includes both the directory 
// where the file should be saved and the file name. If the file with the same name already exists, 
// it is not overwritten and error is returned.
Future<String> Backendless.files.saveFile(Uint8List fileContent, {String filePathName});

// Save a file in a remote path in the Backendless file storage. The path includes both the directory
// where the file should be saved and the file name. The overwrite argument determines if the file 
// should be overwritten if it already exists.
Future<String> Backendless.files.saveFile(Uint8List fileContent, {String filePathName, bool overwrite});

// Save a file in a remote path in the Backendless file storage. If the file with the same name 
// already exists, it is not overwritten and error is returned.
Future<String> Backendless.files.saveFile(Uint8List fileContent, {String path, String fileName});

// Save a file in a remote path in the Backendless file storage. The overwrite argument determines 
// if the file should be overwritten if it already exists.
Future<String> Backendless.files.saveFile(Uint8List fileContent, {String path, String fileName, bool overwrite});

// General signature
Future<String> Backendless.files.saveFile(Uint8List fileContent, {String path, String fileName, String filePathName, bool overwrite});

where:

Argument                Description
fileContent An array of bytes to save.
path Path of the directory where the file should be stored. Must start with "/" which represents the root directory of the remote file storage.
fileName Name of the file where the byte content should be written to.
overwrite The file is overwritten if the argument value is true and the file already exists. Otherwise, if the value is false and another file with the same name already exists, an error  is returned.
filePathName Identifies both the directory where the file should be saved and the file name. Must start with "/" which represents the root directory of the remote file storage.

Example

The example below describes how to save a file called "fox.txt" from the string "The quick brown fox jumps over the lazy dog." You will need to specify:

  • content of a new file ("The quick brown fox jumps over the lazy dog")
  • where to save the new file ("testfolder")
  • a name of the newly created file ("fox.txt")
  • whether a new file should overwrite the existing file, if any (true)
void saveFile() {
  var bytes = utf8.encode("The quick brown fox jumps over the lazy dog");
  Backendless.files.saveFile(bytes, filePathName: "tempfolder/fox.txt", overwrite: true).then((savedFileURL) {
    print("File saved. File URL - $savedFileURL");
  });
}

Errors

Error codes returned on attempt to save a file from the byte array.

Error Code
Description
6016
When saving a new file from the byte array, the payload exceeds 2,800,000 bytes.
6003
A file you are trying to save already exists in the system and cannot overwrite since overwrite argument is ether set to false or omitted.

Codeless Reference

files_api_create_file_1

where:

Argument                Description
path Path of the directory where the file should be stored. Must start with "/" which represents the root directory of the remote file storage.
file name Name of the file where the byte content should be written to.
file content An array of bytes to save as text.
overwrite file The file is overwritten if the argument value is true and the file already exists. Otherwise, if the value is false and another file with the same name already exists, an error  is returned.
return URL of the created file When this box is checked, the successful operation returns a URL to the created file.

Returns a URL to the created file.

The example below creates a new file named "notes.txt" in the "/misc" folder. The contents of the file is text converted from the bytes array (base 64 encoded). The decoded value is "my cool note".

files_api_save_bytes_array_to_file