0
我們項目中的一個模塊是使用nodejs將圖像從網頁上傳到mongo數據庫。我們已經完成了連接到mongo數據庫並使用系統上圖像的物理位置上傳圖像,但是我們無法使網頁上的動態上傳。從客戶端網頁上傳圖片
我們將圖像轉換爲base64代碼,然後將其保存到數據庫。 MongoDB返回一個唯一的ID。我們希望整合這個過程並使其動態化。我們用來連接到mongoDB並從物理位置上傳圖像的代碼可以在這裏找到。
var MongoClient = require('mongodb').MongoClient,
format = require('util').format,
fs = require('fs'),
http = require('http');
http.createServer(function (req, res) {
//should be triggered by the user upload button
put();
//triggered after the upload/button click
res.writeHead(200, {'Content-Type': 'text/html'});
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) throw err;
var collection = db.collection('test_insert');
collection.find().toArray(function(err, results) {
//console.dir(results);
// Let's close the db
//ret = results[0];
console.log(results[0]);
res.end('<img alt="sample" src="data:image/png;base64,' + results[0].image + '">');
db.close();
});
});
//res.end("Hello World\n");
}).listen(3030);
function read() {
var image_base64 = fs.readFileSync('./uploads/2088-1nqsb3l.jpg').toString('base64');
return image_base64;
//console.log(base64_data);
}
function put() {
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) throw err;
var collection = db.collection('test_insert');
collection.insert({image: read()}, function(err, docs) {
console.log("data inserted");
db.close();
});
});
}
function get() {
var ret;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) throw err;
var collection = db.collection('test_insert');
collection.find().toArray(function(err, results) {
//console.dir(results);
// Let's close the db
ret = results[0];
db.close();
});
});
return ret;
}
/*
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) throw err;
var collection = db.collection('test_insert');
collection.insert({a: base64_data}, function(err, docs) {
collection.count(function(err, count) {
console.log(format("count = %s", count));
});
// Locate all the entries using find
collection.find().toArray(function(err, results) {
console.dir(results);
// Let's close the db
db.close();
});
});
});
*/
那麼,你的問題是什麼?它是如何顯示圖像? – 2014-02-21 07:02:41
你可以發佈你的「動態」代碼,並告訴我們,你有什麼問題!? – heinob
的問題是 - 如何將圖像直接從網頁發佈到數據庫並獲取一個唯一的ID – user3232014