2012-09-18 90 views
1

我正在使用Node.js創建聊天應用程序,並希望具有文件上傳功能。雖然我可以上傳文件,但瀏覽器總是會重定向到另一個鏈接或刷新頁面,這當然會破壞聊天。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,但仍然無法做到這一點,無論何時向Node.js服務器發送AJAX POST,它都會重新加載頁面。我的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扶養添加到我的網站,所以我沒有實現它。

任何人都可以幫助我嗎?當文件上傳時,我不想重新加載頁面。

+0

我知道這是一箇舊帖子,但你可以結帳https://www.npmjs.org/package/blueimp-file-upload-expressjs – Arvind

回答

3

您可以在客戶端使用動態創建的隱藏框來完成此操作。

請參閱here瞭解有關expressjs的詳細howto。

+0

哦,我的,這是很多代碼來獲取文件上傳。我會試試看看它是否有效。謝謝!有沒有人有其他方法? – shock

+0

好吧,試了一下,它的工作原理! 需要一些小的改動,雖然,像: 'VAR快遞=需要( '表達') ,應用=快遞() ,服務器=需要( 'HTTP')createServer(APP)' 和 'app.use (express.bodyParser())' – shock

1

Uploadify現在有純粹的HTML5遊戲。

+0

謝謝。其他3個插件無法正常工作後,我切換到使用Uploadify。 – shock

相關問題