node.js和express上的Ajax

node.js和express上的Ajax,ajax,node.js,Ajax,Node.js,您好,我正在尝试用express在node.js中上传文件(图像)。这是我迄今为止所做的 我的app.js var express = require('express'); //Express Web Server var bodyParser = require('body-parser'); //connects bodyParsing middleware var formidable = require('formidable'); var path = require('pat

您好,我正在尝试用express在node.js中上传文件(图像)。这是我迄今为止所做的

我的app.js

var express = require('express');   //Express Web Server 
var bodyParser = require('body-parser'); //connects bodyParsing middleware
var formidable = require('formidable');
var path = require('path');     //used for file path
var fs =require('fs-extra');    //File System-needed for renaming file etc

var app = express();
app.use(express.static(path.join(__dirname, 'public')));

app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
/* ========================================================== 
 bodyParser() required to allow Express to see the uploaded files
============================================================ */
app.use(bodyParser({defer: true}));

app.route('/').get(function(req,res)
{
    console.log("Server started!");
     res.render('index.html');
     res.end('done');
    });

app.post('/upload', function(req, res) {
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files) {
        var targetPath= '/upload/' + files.ImageFile.name;
        fs.move(files.ImageFile.path, __dirname + '/upload/' + files.ImageFile.name, function(err) {

            if (err) return console.log(err);

            console.log('Moved successfully');
        });

        res.send('File Uploaded to ' + targetPath + ' - ' + files.ImageFile.size  + ' bytes');


    });
});

var server = app.listen(3030, function() {
console.log('Listening on port %d', server.address().port);
});
我的html文件:

<form action="/upload" method="post" enctype="multipart/form-data" id="uploadForm">
<input name="ImageFile" id="imageInput" type="file" />
<input type="submit"  id="submit-btn" value="Upload" />
        <div id="fileName"></div>
        <div id="fileSize"></div>
        <div id="fileType"></div>
        <div id="progress"></div>
<img src="images/ajax-loader.gif" id="loading-img" style="display:none;" alt="Please Wait"/>
</form>


我现在可以上传文件了。但我想在不重新加载页面的情况下使用ajax进行上传。请帮助提供相关信息。如有任何帮助,我们将不胜感激。

您需要支持哪些浏览器?我所知道的大部分内容IE@user3689905限制将与
type=“file”
一起使用。Ajax本身直到,而且仅在,才支持传输文件。有关“如何”,请参见。