2

Express を使用して NodeJS アプリを作成し、AppFog にアプリをアップロードしました。唯一の問題は、アプリ (「作成」テーブル用) の写真をアップロードするために、アプリにファイル アップロード フォームがあることです。ローカルでは動作しますが、AppFog では動作しません。AppFog がアップロード ファイルをロックしている可能性があります...何をすべきか正確にはわかりません...私の CHMOD ディレクトリは「0777」です。

(私の英語でごめんなさい、私はヨーロッパから来ました)

私の見解:

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

私のコントローラー:

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');
    });
}

アンソニー

4

1 に答える 1

0

AppFog の FAQ によると、彼らのシステムではまだ、Amazon S3 を使用することはできません。 https://docs.appfog.com/faq#persistentfs

これをNodeに実装するAppFogのドキュメントは見つかりませんでしたが、概念を理解するPHPについてはここにあります。 http://blog.appfog.com/how-to-use-amazon-s3-for-persistent-file-storage-on-appfog/

そして、これは有望に見えます: http://aws.amazon.com/sdkfornodejs/

私がこれを自分で理解したときに更新します。

于 2013-11-11T02:37:57.740 に答える