Search code examples
node.jsexpressappfog

Upload file on AppFog with NodeJS


I created an NodeJS App using Express and I uploaded my App on AppFog, the only problem is that I have a file upload form in my App in order to upload some photos for the App (for my "Creation" table). It works in local but on AppFog it doesn't work, maybe AppFog have locked the upload files... I don't know exactly what am I supposed to do... My CHMOD directory is "0777".

(sorry for my english, I come from Europe)

My view:

  form.admin(action='/creations/save', method='post', enctype='multipart/form-data')
    div
      label(for='title') Title
      input(type='text', name='title', placeholder='Title...')
    div
      label(for='thumbnail') Thumbnail
      input(type='file', name='thumbnail')
    div
      label(for='moodboard') Moodboard
      input(type='file', name='moodboard')
    input(type='submit', value='Save')
    input(type='reset', value='Cancel')

My controller:

var saveFile = function(file, folder){
    var file_tmp = file.path;
    var file_name = file.name;
    var file_type = file.type;
    var file = './uploads/'+folder+'/'+file_name;
    console.log(file);
    fs.rename(file_tmp, file, function(err){
        if( err ) console.log(err);
    });
}

exports.save = function(req, res) {
    saveFile(req.files.thumbnail, 'thumbnails');
    saveFile(req.files.moodboard, 'moodboards');
    global.db.Creation.create({
        title: req.body.title,
        description: req.body.description,
        location: req.body.location,
        date: req.body.date,
        thumbnail: req.files.thumbnail.name,
        moodboard: req.files.moodboard.name
    }).success( function(creation){
        res.redirect('/glovebox');
    });
}

Anthony


Solution

  • AppFog FAQ says it's not possible on their system yet and to use Amazon S3 for now. https://docs.appfog.com/faq#persistentfs

    I couldn't find any AppFog docs on implementing this on Node, but here's on for PHP which gets the concept across. http://blog.appfog.com/how-to-use-amazon-s3-for-persistent-file-storage-on-appfog/

    And then this looks promising: http://aws.amazon.com/sdkfornodejs/

    Will update when/if I figure this out myself.