2017-03-03 10 views
0

Expressのテスト例ですが、私はこれに問題があります。node.jsを使用して画像をアップロードする際にエラーが発生しました - Express

私は画像をアップロードしようとすると、このコード例(ウェブから取った例)を実行しようとしています。

TypeError: Cannot read property 'file' of undefined 

サーバ

var express = require('express'); 
var app = express(); 
var fs = require("fs"); 

var bodyParser = require('body-parser'); 
var multer = require('multer'); 

app.use(express.static('public')); 
app.use(bodyParser.urlencoded({ extended: false })); 
var multer = require('multer'); 

app.get('/index.html', function (req, res) { 
    res.sendFile(__dirname + "/" + "index.html"); 
}) 

app.post('/file_upload', function (req, res) { 
    console.log(req.files.file.name); 
    console.log(req.files.file.path); 
    console.log(req.files.file.type); 
    var file = __dirname + "/" + req.files.file.name; 

    fs.readFile(req.files.file.path, function (err, data) { 
     fs.writeFile(file, data, function (err) { 
     if(err){ 
      console.log(err); 
      }else{ 
       response = { 
        message:'File uploaded successfully', 
        filename:req.files.file.name 
       }; 
      } 
     console.log(response); 
     res.end(JSON.stringify(response)); 
     }); 
    }); 
}) 

var server = app.listen(8081, function() { 
    var host = server.address().address 
    var port = server.address().port 

    console.log("Example app listening at http://%s:%s", host, port) 
}) 

CLIENT

<html> 
    <head> 
     <title>File Uploading Form</title> 
    </head> 

    <body> 
     <h3>File Upload:</h3> 
     Select a file to upload: <br /> 

     <form action = "http://127.0.0.1:8081/file_upload" method = "POST" 
     enctype = "multipart/form-data"> 
     <input type="file" name="file" size="50" /> 
     <br /> 
     <input type = "submit" value = "Upload File" /> 
     </form> 

    </body> 
</html> 
+0

それは、このラインはほぼ確実です。 name; 'req.files.file'が正しいことを確認してください。 –

+0

あなたは「テストの例」だと言っていますが、その例のソースは何ですか? –

答えて

1

<html> 
<head> 
    <title>File Upload</title> 
</head> 

<body> 
    <h3>File Upload:</h3> 
    Select a file to upload: <br /> 

    <form action = "http://127.0.0.1:8081/file_upload" method = "POST" 
    enctype = "multipart/form-data"> 
    <input type="file" name="foo" size="50" /> 
    <br /> 
    <input type = "submit" value = "Upload File" /> 
    </form> 

</body> 
</html> 

Server.js

...これを試してみてください`varファイル= __dirname + "/" + req.files.file:upload.arrayするマルチアップロード変更upload.single( 'FOO')( 'FOO')については

関連する問題