I gave up this approach and instead used the following approach, which works perfectly. Thanks.
I gave up this approach and instead used the following approach, which works perfectly. Thanks.
I have followed this topic to create and implemented it into my app.
JS file:
pre
var file;
function fileSelectHandler(e) {
var files = e.target.files || e.dataTransfer.files;
file = files[0];
previewFile();
}
function previewFile() {
var previewContainer = $('table[dsid=preview]');
var fileName = $('[name=fileName]');
var fileContentType = $('[name=fileContentType]');
// make the preview container visible once a file was selected
previewContainer.toggle();
// set the file name
fileName.text(file.name);
fileContentType.text(file.type);
var reader = new FileReader();
reader.onloadend = function(e) {
var fileDataUrl = e.target.result;
console.log("fileDataUrl: "+fileDataUrl);
localStorage.setItem("fileDataUrl", fileDataUrl);
//Set current avatar to the image component
Code: Select all
Apperyio("Profile_Pic").attr("src", fileDataUrl);
};
//reader.readAsText(file);
//reader.readAsBinaryString(file);
//reader.readAsArrayBuffer(file);
reader.readAsDataURL(file);
}
/pre
The code in the html component is the same as Yuriis
and the code on the button is the same.
It all works very well.
The only problem is the my fileDataUrl is extremely long.
for example:
data:image/png;base64,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VdW1+PEFZA4hEyGEKcyDzDOIgCCoiKI4+56tQ6uitbb/alur1VqfbR06WKeH9mlRa6vWAQfKIKIgKDLPMgUIBAIJBEJISML032uHczjn5maEACG//fnc3DPsM33PxY/37nXWqnfMNKEhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJBBOoHWcYiBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAChBYwAcBAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBMoUILCgTBpWIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggACBBXwGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKBMAQILyqRhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggQWMBnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTKFCCwoEwaViCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAiEOQlp7hTPKOAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAueoQLvUFlW6MjIWVImLzggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCNQtATdjgXPZVY1McLbjHQEEEEAAAQQQQAABBBBAAAEEEEAAgXNRIDDTZ5OE2HPxMrkmBBBAAAEEEEAAAQQQqAMCWTm51bpKMhZUi42NEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqBsCBBbUjfvMVSKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFAtAQILqsXGRggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCNQNAQIL6sZ95ioRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBColgCBBdViYyMEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTqhgCBBXXjPnOVCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIVEuAwIJqsbERAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACdUOAwIK6cZ+5SgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBKolQGBBtdjYCAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgbohQGBB3bjPXCUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALVEiCwoFpsbIQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDdECCwoG7cZ64SAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBagkQWFAtNjZCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgbggQWFA37jNXiQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLUECCyoFhsbIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUDcECCyoG/eZq0QAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKBaAgQWVIuNjRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEKgbAiF14zK5SgQQQAABBBBAAAEEEEAAAQQQKE8gPTNblq/bInvz8svrxroaEoiOCJf+3dpLakpS0CMs3JItHyxLl217uT9BgQIWJkaHy80D2kn/1sE9A7oziwACCCCAAAIIIIAAAgggUIEAGQsqAGI1AggggAACCCCAAAIIIIAAAnVBYOGqjQQVnMEbnV9YZAM7yjqFfyxII6igLJwgy/fkF9lAjCCrWIQAAggggAACCCCAAAIIIFANAQILqoHGJggggAACCCCAAAIIIIAAAgicawI6sE07swLlZYvQgXJa1QTI7lA1L3ojgAACCCCAAAIIIIAAAuUJEFhQng7rEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqOMCZyyw4PDhw5KTkyN5eXl1/BZw+QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJy9AmcssOCxxx6TcePGyZgxY2TJkiVnrxBnhgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA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
I have "fileDataUrl" mapped to a "profillePic" field.
how can I reduce the fileDataUrl length?
I have the profile pic field mapped to an image component in a list item.
the list can have up to 40 database rows mapped to it.
I'm worried that it will slow my app down if the fileDataUrl is so long
Hi Joe,
fileDataUrl is file binary content converted to base64 view. Thus it's size fully depends on file you choose.
There is not way to limit this length.
Also you can upload this file to Appery.io DB. And then get short URL to that cloud based file.
Regards.
Is it ok how it is?
or
Do you think it is better to upload the file to Appery.io DB and then map the short URL to the list?
I don't want my it to slow down my app.
Hi Joe,
Yes it's better to upload file to Appery.io Files collection at first. Then get short URL from response of Upload service. And use this short url in your "profillePic" field.
Read more about how to upload files to Appery.io Files collection here: https://devcenter.appery.io/tutorials...
Regards.
Hi Yurii,
I've been following the tutorial but I don't use the input component to add files.
I use a HTML component:
pre
/pre
button:
pre $('#fileselect').trigger('click');
/pre
js file:
pre
var file;
function fileSelectHandler(e) {
var files = e.target.files || e.dataTransfer.files;
file = files[0];
previewFile();
}
function previewFile() {
var previewContainer = $('table[dsid=preview]');
var fileName = $('[name=fileName]');
var fileContentType = $('[name=fileContentType]');
// make the preview container visible once a file was selected
previewContainer.toggle();
// set the file name
fileName.text(file.name);
fileContentType.text(file.type);
var reader = new FileReader();
reader.onloadend = function(e) {
var fileDataUrl = e.target.result;
console.log("fileDataUrl: "+fileDataUrl);
localStorage.setItem("fileDataUrl", fileDataUrl);
//Set current avatar to the image component
Code: Select all
Apperyio("Profile_Pic").attr("src", fileDataUrl);
};
//reader.readAsText(file);
//reader.readAsBinaryString(file);
//reader.readAsArrayBuffer(file);
reader.readAsDataURL(file);
}
/pre
therefore the code doesnt work:
preuploadMultipleFilesHelper(uploadService, Apperyio('file_input'));/pre
I tried:
preuploadMultipleFilesHelper(uploadService, Apperyio('Profile_Pic'));/pre
Hi Joe,
I guess problem in you custom JS file. Please try to comment this code. (not sure why do you use it).
Please read more about how to upload files to appery.io DB here: https://devcenter.appery.io/tutorials...
Regards.
The instructions you provide here are different to tutorial here:
https://devcenter.appery.io/tutorials...
If I use the instructions you gave on here I get the file in base64 view saved in local storage "fileDataUrl"
how do I upload the file to appery database from fileDataUrl?
I can't figure it out from that tutorial because that uses a native Appery.io function that helps to upload files codeuploadMultipleFilesHelper(uploadService, Apperyio('file_input'));/code. using two parameters – service name, and the name of the input component.
but your instructions on this post don't use an input component.
So how do I upload the fileDataUrl to appery database?
Hi Joe,
Here is solution to upload file to Appery.io DB files collection with base64 content.
import DB files upload service.
Details: http://prntscr.com/5f51tq/direct
add upload service to the page. And call datasource "uploadService2".
Details: http://prntscr.com/5f52b3/direct
click on "before send" mapping and link your session token to "X-Appery-Session-Token" header.
Details: http://prntscr.com/5f52oc/direct
Add new JS asset and populate it with following JS code:
precode
function b64toBlob(b64Data, contentType, sliceSize) {
contentType = contentType '';
sliceSize = sliceSize 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
Code: Select all
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
Code: Select all
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
/code/pre
Details: http://prntscr.com/5f530x/direct
Add button to the page and add JS "click" event handler with following JS code:
precode
//Here you can set file name.
var fileName = "myFile.png"
//Here you can use your base64 content. Note: there is no "data:image/jpeg;base64," part.
var base64Content = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
var fileBlob = b64toBlob(base64Content, "image/png");
var data = new FormData();
data.append(fileName, fileBlob);
var onSuccess = function(data){
alert(JSON.stringify(data));
};
//Where "uploadService2" is your updload service datasource name.
uploadService2.execute({
'allowDataModification': false,
'processData': false,
'body': {data: data},
'cache': false,
'success': onSuccess
});
/code/pre
Now on click this button you will upload file and alert with result will appear.
You can get file url from result and download this file.
Regards.