2011-12-12 15 views
5

の画像をアップロードするImはのフォームをアップロードします。しかし、bodyParser()を使用しても動作しません。 もう一方で、bodyParserを使用しないと、ファイルをアップロードできません。Expressjsのボディパーサーと接続フォーム

どうすれば一緒に遊べますか?

app.configure(function() { 
    app.register('.html', require('ejs')); 
    app.set('views', __dirname + '/../views'); 
    app.set('view engine', 'html'); 
    app.use(gzippo.staticGzip(__dirname + '/../public'),{ maxAge: 86400000 }); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(form({ 
     keepExtensions: true, 
     uploadDir: __dirname + '/../tmp' 
    })); 
    app.use(express.cookieParser()); 
    app.use(express.session({ 
     secret: 'test', 
     cookie: { secure: true }, 
     store: new MySQLSessionStore(client.database, client.user, client.password) 
    })); 
    app.use(expressValidator); 
    app.use(app.router); 
    app.use(express.csrf()); 
}); 

答えて

5

最新のExpressを使用している場合は、connect-form(Connect 1.8.x以降で廃止予定)を含める必要はありません。

あなたのルートにアップロードされたファイルを取得するためにreq.filesを使用するだけで、Expressは残りの処理を行います。この記事をチェックアウト:

http://tjholowaychuk.com/post/12943975936/connect-1-8-0-multipart-support

+0

ああがいいのthats :)しかし、今私は、ファイル名に問題があります。 'req.files.image.filename'ではアップロードされる前の画像の名前を取得します。そして、それは後にランダムな文字列または何かに名前が変更されました。それはどこにありますか?このテーマで何かを見つけることができないようですか? – georgesamper

+0

イメージの名前とパスが表示されます。そのイメージを一時的な場所から目的の場所に移動すればいいですよ:) – alessioalex

+0

リンクが壊れています。リンクを貼り付けるのではなく、ここに答えを入れる方が良いでしょう –

関連する問題