Node.js + Express:上传文件而不重新加载页面

时间:2012-09-18 08:14:24

标签: ajax node.js file-upload express

我正在使用Node.js创建聊天应用程序,并希望拥有文件上传功能。虽然我可以上传文件,但浏览器总会被重定向到另一个链接或页面刷新,这当然会破坏聊天。

首先我尝试使用Express来执行此操作:

的index.html:

<form id="fileSendButton" action="/" method="post" enctype="multipart/form-data">
    <input type="text" name="title"><br>
    <input type="file" name="upload" multiple="multiple"><br>
    <input type="submit" value="Upload">
</form> 

app.js:

app.post('/', function(req, res){
    //some validation and rename file
    res.send();
    return false;
});

下一步我尝试使用AJAX,但仍然无法做到,每当AJAX POST到Node.js服务器时,它都会重新加载页面。无论如何我的AJAX代码:

的index.html:

$.ajax({  
    type: "POST",  
    url: "/",  
    data: formdata,  
    processData: false,
    contentType: false,
    success: function (res) {
        document.getElementById("chatText").innerHTML = res; 
    } 
});  
return false;

第三次我去看看Uploadify,但不想在我的网站上添加Flash依赖性,所以我没有实现它。

有人可以帮我吗?我不想在上传文件时重新加载页面。

2 个答案:

答案 0 :(得分:3)

您可以在客户端使用动态创建的隐藏框架来执行此操作。

请参阅here了解详情如何使用expressjs。

答案 1 :(得分:1)

Uploadify现在有一个纯HTML5播放。