2014-09-23 84 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

相关问题