編集: === 明確にするために、私はファイルをサーバーにアップロードしようとしています。
これに似た他の一般的な問題を調べましたが、問題を軽減することはできませんでした。
目的は、ファイルのアップロード機能を作成することです。フロントエンドは次のようになります。
<div class="holdingDiv">
<form action="/file-upload" name="upload" class="dropzone dz-clickable" id="dropzoneArea" enctype="multipart/form-data">
<input style="display:none" type="file" name="thumbnail[thumbs]" />
<button id="uploadSubmitter" class="btn btn-primary btn-large" type="submit">Finished</button>
</form>
</div>
フォーム タイプとすべてのジャズ セットアップがあります。
post リクエストを処理する server.js は次のようになります。
app.post('/file-upload', imports.upload);
また、次のものが必要であることに注意してください。
//needed for forms
app.use(express.bodyParser());
imports.upload exports 関数を呼び出すために必要な機能と同様に。
exports.upload 関数は次のようになります。
exports.upload = function (req, res) {
console.log('FIRST TEST: ' + JSON.stringify(req.files));
console.log('second TEST: ' +req.files.thumbnail.thumbs.name);
//get the file extenstion:
//console.log('size' + req.files.thumbnail.size);
// console.log('test this: ' + req.files.thumbnail.name);
// var fileExtension = JSON.stringify(req.files);
//console.log('Im getting this file type: '+ fileExtension.name);
// console.log('this: '+req.files.upload);
//fs.readFile(req.files.uploadFiles.path, function (err, data) {
// // ...
// var newPath = __dirname + "/uploads/"+uploadFiles.name;
// fs.writeFile(newPath, data, function (err) {
// res.redirect("back");
// });
//});
}
私はそれを機能させるためにさまざまな方法を試していたので、多くのものがコメントアウトされています。オブジェクト全体として JSON Stringify で呼び出すことができますが、情報を取得できるオブジェクトとして使用したいと考えています。
req.files.thumbnail.thumbs.name
しかし、これを試してみると(JSON Stringyfiedでも)、未定義であると表示されます。
私が試したこと:
関数全体を app.js に移動します (req.body を使用して動作する小さなログイン関数があり、これで修正される可能性があると想定しました。
JSON Stringyfy を使用して、オブジェクトの特定の部分を取得します。(未定義を返します)
頭をキーボードにぶつける。(未定義を返します)
フォームのenctypeをいくつかの異なるものに変更しますが、ここでの回答のほとんどは、フォームデータがファイルのアップロードに最適なenctypeであると述べています。
なぜこれが起こっているのかについての助けと指針は大歓迎です!!