2014-09-23 53 views
0

我使用mysql的node.js,我想保存從url下載並保存在數據庫中的pdf文件。 我在這裏寫了我的代碼。如何使用node.js保存mysql中的pdf文件?

exports.pdf = function(req, response) {  
    var url ="http://www.ieee.org/documents/ieeecopyrightform.pdf"; 
    http.get(url, function(res) { 
    console.log("sss"); 
    var chunks = []; 
    res.on('data', function(chunk) { 
    console.log('start'); 
    chunks.push(chunk); 
    }); 
    res.on("end", function() { 
    console.log('downloaded'); 
    var jsfile = new Buffer.concat(chunks); 
    console.log('converted to base64'); 
    response.header("Access-Control-Allow-Origin", "*"); 
    response.header("Access-Control-Allow-Headers", "X-Requested-With"); 
    response.header('content-type', 'application/pdf'); 
    }); 
    }).on("error", function() { 
    console.log("error"); 
    }); 
} 
+1

你試過了什麼?你如何連接到'MySQL'?您沒有包含任何數據庫代碼。 – loganfsmyth 2014-09-23 16:45:37

回答

1

mysql/mysql2模塊中支持BLOB /二進制列的類型,所以這些模塊的所有你需要做的就是通過在緩衝區實例作爲列值。例如:

// ... 
// no need for `new` with `Buffer.concat()` 
var jsfile = Buffer.concat(chunks); 
var query = 'INSERT INTO `files` SET ?', 
    values = { 
     type: 'pdf', 
     data: jsfile 
    }; 
mysql.query(query, values, function(err) { 
    if (err) throw err; // TODO: improve 
    // do something after successful insertion 
}); 
+0

謝謝@mscdex是它的工作 – abdulbarik 2014-09-23 17:35:39

相關問題