node.js之文件上傳報錯:TypeError: Cannot read property '0' of undefined


基於node.js的文件上傳

 菜鳥教程學習使用node.js,實現文件上傳,點擊上傳文件后卻報錯:TypeError: Cannot read property '0' of undefined。

(1)index.html代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>node.js 文件上傳</title>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<h3>文件上傳</h3>
選擇一個文件上傳:<br>
<form action="http://127.0.0.1:8081/file_upload" method="post" enctype="multipart/from-data">
    <input type="file" name="image" size="50"/>
    <br/>
    <input type="submit" value="上傳文件"/>
</form>
</body>
</html>

 (2)server.js的代碼如下

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

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

app.use('/public',express.static('public'));
app.use(bodyParser.urlencoded({extended:false}));
app.use(multer({des:'/tmp/'}).array('image'));

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

app.post('/file_upload',function (req,res) {
   console.log(req.files[0]);

   var des_file = __dirname + '/' + req.files[0].originalname;
   fs.readFile(req.files[0].path,function (err,data) {
       fs.writeFile(des_file,data,function (err) {
           if(err){
               console.log(err);
           } else {
               response = {
                   message:'File uploaded successfully',
                   filename:req.files[0].originalname
               };
           }
           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('server running at http://%s:%s',host,port);
});

 運行server.js,訪問index.html,點擊上傳文件之后跳轉路由(/file_upload),顯示如下錯誤:

 

 未解決,求大佬解答?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM