How can I have the user upload their own photo and have that photo stored on the database so that each user can have his
I gave up this approach and instead used the following approach, which works perfectly. Thanks.
Catch up wih the Appery.io community on our forum. Here you'll find information on the lastest questions and issues Appery.io developers are discussing.
https://forum.appery.io/
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.