Page 3 of 5

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

Posted: Thu Oct 02, 2014 12:51 am
by Matthew Huang

I gave up this approach and instead used the following approach, which works perfectly. Thanks.

https://getsatisfaction.com/apperyio/...

Image


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

Posted: Thu Apr 30, 2015 2:59 pm
by Joe Sharples

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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


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

Posted: Thu Apr 30, 2015 3:07 pm
by Joe Sharples

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


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

Posted: Fri May 01, 2015 2:55 am
by Yurii Orishchuk

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.


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

Posted: Fri May 01, 2015 10:01 am
by Joe Sharples

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.


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

Posted: Mon May 04, 2015 1:45 am
by Yurii Orishchuk

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.


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

Posted: Tue May 19, 2015 11:03 am
by Joe Sharples

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

but I get this error.
Image


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

Posted: Fri May 22, 2015 12:11 am
by Yurii Orishchuk

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.


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

Posted: Mon Jun 01, 2015 1:48 pm
by Joe Sharples

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?


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

Posted: Mon Jun 15, 2015 2:14 am
by Yurii Orishchuk

Hi Joe,

Here is solution to upload file to Appery.io DB files collection with base64 content.

  1. import DB files upload service.
    Details: http://prntscr.com/5f51tq/direct

  2. add upload service to the page. And call datasource "uploadService2".
    Details: http://prntscr.com/5f52b3/direct

  3. click on "before send" mapping and link your session token to "X-Appery-Session-Token" header.

    Details: http://prntscr.com/5f52oc/direct

  4. 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&#46;length; offset += sliceSize) {
    var slice = byteCharacters&#46;slice(offset, offset + sliceSize);

    Code: Select all

     var byteNumbers = new Array(slice&#46;length); 
     for (var i = 0; i < slice&#46;length; i++) { 
         byteNumbers[i] = slice&#46;charCodeAt(i); 
     } 
    
     var byteArray = new Uint8Array(byteNumbers); 
    
     byteArrays&#46;push(byteArray); 

}

Code: Select all

 var blob = new Blob(byteArrays, {type: contentType}); 
 return blob; 

}

/code/pre

Details: http://prntscr.com/5f530x/direct

  1. Add button to the page and add JS "click" event handler with following JS code:

    precode

    &#47;&#47;Here you can set file name&#46;
    var fileName = "myFile&#46;png&quot

    &#47;&#47;Here you can use your base64 content&#46; Note: there is no "data:image/jpeg;base64," part&#46;
    var base64Content = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4&#47;&#47;8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
    var fileBlob = b64toBlob(base64Content, "image/png");

    var data = new FormData();

    data&#46;append(fileName, fileBlob);

    var onSuccess = function(data){
    alert(JSON&#46;stringify(data));
    };

    &#47;&#47;Where "uploadService2" is your updload service datasource name&#46;
    uploadService2&#46;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.