Matthew Huang
Posts: 0
Joined: Mon Jun 09, 2014 11:06 am

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.

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

Image

Joe Sharples
Posts: 0
Joined: Mon Aug 18, 2014 1:31 pm

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 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,iVBORw0KGgoAAAANSUhEUgAACBYAAAQ2CAYAAACNlKxbAAAMFWlDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk8kWx+crKYSEFoiAlNCbIL1K7x3pYCMkAUIJIRBU7MiigmtBRQRFRVdAFFwLIIsNu7II9r6gorKyLhZsqLxJAujzvT3vvDlnvu+XO/fe+c9k5jszAMjbsgSCTFQBgCx+njDS34sZn5DIJP0BMKAIZAEJaLDYuQLPiIgQ8I/l3U2AiN/XzMW5/tnvvxZFDjeXDQASATmZk8vOgnwYAFydLRDmAUDohna9uXkCMb+FrCyEAgEgksWcKmUNMSdL2VLiEx3pDdkHADKVxRKmAiAnzs/MZ6fCPHICyJZ8Do8PeQdkN3YaiwO5F/KUrKxsyPJUyMbJ3+VJ/becyRM5WazUCZaORVLIPrxcQSZr/v85Hf+7ZGWKxvvQhZWaJgyIFI8ZzltdRnawmKF2pJ2fHBYOWQnyBR5H4i/mu2migJgx/0F2rjecM8AAAAUclk8wZDiXKEOUEeM5xtYsoSQW+qNhvLzA6DFOFmZHjuVH87m5vlHjnMYNDBnLuZKfGTbO1Sk8v0DIcKWhhwvSouOkOtEz+bzYMMhykLtzM6KCx/wfFqR5h437CEWRYs36kN+mCP0ipT6Yalbu+LgwCzZLokEVskdeWnSANBaL5+bGh4xr43B9fKUaMA6XHzOmGYOryytyLLZYkBkx5o9VczP9I6XzjB3IzY8aj72aBxeYdB6wR+msoAipfuydIC8iWqoNx0EI8AY+gAlEsCaDbJAOeF2DLYPwl7TFD7CAEKQCLjAfs4xHxEla+PAZBQrAX5C4IHcizkvSygX50P5lwip9moMUSWu+JCIDPIWchavjbrgLHgKfHrBa446403gcU368V6Iv0YcYQPQjmkzoYEPVmbAKAe8/bd8iCU8JPYRHhBuEXsIdEAxbuXDMYoX8iZHFgieSLGO/5/AKhT8oZ4JQ0Avj/MZGlwyjB8Z9cEOo2g73wl2hfqgdZ+DqwBy3hSPxxN3h2Oyg9XuFogkV3+byx/7E+r4f45hdzlTObkxF8oR+7wmvH7N4fzdHHPgO/tETW4kdws5jp7CLWDvWApjYCawV68SOiXliJTyRrITx3iIl2jJgHt64j2WD5YDl5//onTWmQCj5v0Eed16eeEN4ZwvmC3mpaXlMT/hF5jID+WyLKUxrSys7AMTfd+nn4w1D8t1GGJe+2XJOAuBUAo2p32wsPQCOPgWA/u6bTe813F7rADjWzRYJ86U2XPwgAAqQhztDDWgBPWAMx2QN7IEL8AC+IAiEg2iQAGbDWU8DWVD1XLAQLAPFoBSsA5tAJdgOdoE6sB8cBC2gHZwC58Bl0A1ugHtwbfSDF2AIvAMjCIKQEBpCR9QQbcQAMUOsEUfEDfFFQpBIJAFJQlIRPiJCFiLLkVKkDKlEdiL1yK/IUeQUchHpQe4gfcgA8hr5hGIoFVVGNVFDdCrqiHqiwWg0OgtNRXPQArQIXYNWoDXoPrQZPYVeRm+gvegLdBgDmCzGwHQwc8wR88bCsUQsBRNii7ESrByrwRqxNvhfX8N6sUHsI07E6TgTN4frMwCPwdl4Dr4YX41X4nV4M34Gv4b34UP4VwKNoEEwIzgTAgnxhFTCXEIxoZywh3CEcBbuqH7COyKRyCAaER3g3kwgphMXEFcTtxGbiCeJPcTHxGESiaRGMiO5ksJJLFIeqZi0hbSPdIJ0ldRP+kCWJWuTrcl+5EQyn1xILifvJR8nXyU/I4/IKMgYyDjLhMtwZObLrJXZLdMmc0WmX2aEokgxorhSoinplGWUCkoj5SzlPuWNrKysrqyT7HRZnuxS2QrZA7IXZPtkP1KVqKZUb+pMqoi6hlpLPUm9Q31Do9EMaR60RFoebQ2tnnaa9pD2QY4uZyEXKMeRWyJXJdcsd1XupbyMvIG8p/xs+QL5cvlD8lfkBxVkFAwVvBVYCosVqhSOKtxSGFakK1ophitmKa5W3Kt4UfG5EknJUMlXiaNUpLRL6bTSYzpG16N709n05fTd9LP0fmWispFyoHK6cqnyfuUu5SEVJRVblViVeSpVKsdUehkYw5ARyMhkrGUcZNxkfJqkOclzEnfSqkmNk65Oeq86WdVDlataotqkekP1kxpTzVctQ229WovaA3Vc3VR9uvpc9Wr1s+qDk5Unu0xmTy6ZfHDyXQ1Uw1QjUmOBxi6NTo1hTS1Nf02B5hbN05qDWgwtD610rY1ax7UGtOnabto87Y3aJ7T/ZKowPZmZzArmGeaQjoZOgI5IZ6dOl86IrpFujG6hbpPuAz2KnqNeit5GvQ69IX1t/VD9hfoN+ncNZAwcDdIMNhucN3hvaGQYZ7jCsMXwuZGqUaBRgVGD0X1jmrG7cY5xjfF1E6KJo0mGyTaTblPU1M40zbTK9IoZamZvxjPbZtYzhTDFaQp/Ss2UW+ZUc0/zfPMG8z4LhkWIRaFFi8XLqfpTE6eun3p+6ldLO8tMy92W96yUrIKsCq3arF5bm1qzrausr9vQbPxslti02ryyNbPl2lbb3raj24XarbDrsPti72AvtG+0H3DQd0hy2Opwy1HZMcJxteMFJ4KTl9MSp3anj872znnOB53/djF3yXDZ6/J8mtE07rTd0x676rqyXHe69rox3ZLcdrj1uuu4s9xr3B956HlwPPZ4PPM08Uz33Of50svSS+h1xOu9t7P3Iu+TPpiPv0+JT5evkm+Mb6XvQz9dv1S/Br8hfzv/Bf4nAwgBwQHrA24FagayA+sDh4IcghYFnQmmBkcFVwY/CjENEYa0haKhQaEbQu+HGYTxw1rCQXhg+IbwBxFGETkRv00nTo+YXjX9aaRV5MLI81H0qDlRe6PeRXtFr42+F2McI4rpiJWPnRlbH/s+zieuLK43fmr8ovjLCeoJvITWRFJibOKexOEZvjM2zeifaTezeObNWUaz5s26OFt9dubsY3Pk57DmHEoiJMUl7U36zApn1bCGkwOTtyYPsb3Zm9kvOB6cjZwBriu3jPssxTWlLOV5qmvqhtSBNPe08rRBnjevkvcqPSB9e/r7jPCM2ozRzLjMpixyVlLWUb4SP4N/Jlsre152j8BMUCzozXHO2ZQzJAwW7slFcmfltuYpw6NOp8hY9JOoL98tvyr/w9zYuYfmKc7jz+ucbzp/1fxnBX4FvyzAF7AXdCzUWbhsYd8iz0U7FyOLkxd3LNFbUrSkf6n/0rpllGUZy34vtCwsK3y7PG55W5Fm0dKixz/5/9RQLFcsLL61wmXF9pX4St7KrlU2q7as+lrCKblUallaXvp5NXv1pZ+tfq74eXRNypqutfZrq9cR1/HX3Vzvvr6uTLGsoOzxhtANzRuZG0s2vt00Z9PFctvy7Zspm0WbeytCKlq36G9Zt+VzZVrljSqvqqatGltXbX2/jbPtarVHdeN2ze2l2z/t4O24vdN/Z3ONYU35LuKu/F1Pd8fuPv+L4y/1e9T3lO75Usuv7a2LrDtT71Bfv1dj79oGtEHUMLBv5r7u/T77WxvNG3c2MZpKD4ADogN//pr0682DwQc7DjkeajxscHjrEfqRkmakeX7zUEtaS29rQmvP0aCjHW0ubUd+s/ittl2nveqYyrG1xynHi46Pnig4MXxScHLwVOqpxx1zOu6djj99/cz0M11ng89eOOd37vR5z/MnLrheaL/ofPHoJcdLLZftLzd32nUe+d3u9yNd9l3NVxyutHY7dbf1TOs5ftX96qlrPtfOXQ+8fvlG2I2emzE3b9+aeav3Nuf28zuZd17dzb87cm/pfcL9kgcKD8ofajys+cPkj6Ze+95jfT59nY+iHt17zH784knuk8/9RU9pT8ufaT+rf279vH3Ab6D7zxl/9r8QvBgZLP5L8a+tL41fHv7b4+/Oofih/lfCV6OvV79Re1P71vZtx3DE8MN3We9G3pd8UPtQ99Hx4/lPcZ+ejcz9TPpc8cXkS9vX4K/3R7NGRwUsIUtyFMBgRVNSAHhdCwAtAZ4d4D2OIie9f0kKIr0zSgj8E0vvaJJiD0CtBwAxSwEIgWeUalgNIFPhW3z8jvYAqI3NRB0ruSk21tJcVHiLIXwYHX2jCQCpDYAvwtHRkW2jo192Q7F3ADiZI733iQsRnvF3mIipq5MCfiz/AjkxayFMtUdaAAAACXBIWXMAABYlAAAWJQFJUiTwAAABn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yMDcwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjEwNzg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Kx4IyywAAQABJREFUeAHs3Ql8VdW1+PEFZA4hEyGEKcyDzDOIgCCoiKI4+56tQ6uitbb/alur1VqfbR06WKeH9mlRa6vWAQfKIKIgKDLPMgUIBAIJBEJISML032uHczjn5maEACG//fnc3DPsM33PxY/37nXWqnfMNKEhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJBBOoHWcYiBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAChBYwAcBAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBMoUILCgTBpWIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggACBBXwGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKBMAQILyqRhBQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggQWMBnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTKFCCwoEwaViCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAiEOQlp7hTPKOAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAueoQLvUFlW6MjIWVImLzggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCNQtATdjgXPZVY1McLbjHQEEEEAAAQQQQAABBBBAAAEEEEAAgXNRIDDTZ5OE2HPxMrkmBBBAAAEEEEAAAQQQqAMCWTm51bpKMhZUi42NEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqBsCBBbUjfvMVSKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFAtAQILqsXGRggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCNQNAQIL6sZ95ioRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBColgCBBdViYyMEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTqhgCBBXXjPnOVCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIVEuAwIJqsbERAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACdUOAwIK6cZ+5SgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBKolQGBBtdjYCAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgbohQGBB3bjPXCUCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALVEiCwoFpsbIQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDdECCwoG7cZ64SAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBagkQWFAtNjZCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgbggQWFA37jNXiQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLUECCyoFhsbIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUDcECCyoG/eZq0QAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKBaAgQWVIuNjRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEKgbAiF14zK5SgQQQAABBBBAAAEEEEAAAQQQKE8gPTNblq/bInvz8svrxroaEoiOCJf+3dpLakpS0CMs3JItHyxLl217uT9BgQIWJkaHy80D2kn/1sE9A7oziwACCCCAAAIIIIAAAgggUIEAGQsqAGI1AggggAACCCCAAAIIIIAAAnVBYOGqjQQVnMEbnV9YZAM7yjqFfyxII6igLJwgy/fkF9lAjCCrWIQAAggggAACCCCAAAIIIFANAQILqoHGJggggAACCCCAAAIIIIAAAgicawI6sE07swLlZYvQgXJa1QTI7lA1L3ojgAACCCCAAAIIIIAAAuUJEFhQng7rEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqOMCZyyw4PDhw5KTkyN5eXl1/BZw+QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJy9AmcssOCxxx6TcePGyZgxY2TJkiVnrxBnhgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA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

Joe Sharples
Posts: 0
Joined: Mon Aug 18, 2014 1:31 pm

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

Yurii Orishchuk
Posts: 0
Joined: Fri Feb 14, 2014 8:20 am

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

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.

Joe Sharples
Posts: 0
Joined: Mon Aug 18, 2014 1:31 pm

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

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.

Yurii Orishchuk
Posts: 0
Joined: Fri Feb 14, 2014 8:20 am

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

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.

Joe Sharples
Posts: 0
Joined: Mon Aug 18, 2014 1:31 pm

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

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

Yurii Orishchuk
Posts: 0
Joined: Fri Feb 14, 2014 8:20 am

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

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.

Joe Sharples
Posts: 0
Joined: Mon Aug 18, 2014 1:31 pm

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

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?

Yurii Orishchuk
Posts: 0
Joined: Fri Feb 14, 2014 8:20 am

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

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.

Return to “Issues”