Javascript 从客户端网页上载图像

Javascript 从客户端网页上载图像,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我们项目中的一个模块是使用nodejs将图像从网页上传到mongo数据库。我们已完成连接到mongo数据库并使用图像在系统上的物理位置上传图像,但我们无法从网页动态上传图像 我们将图像转换为base64代码,然后将其保存到数据库中。MongoDB返回一个唯一的id。我们希望集成此过程并使其动态化。我们用来连接mongoDB并从物理位置上传图像的代码可以在这里找到 var MongoClient = require('mongodb').MongoClient, format = req

我们项目中的一个模块是使用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();
        });
    });
});
*/
var MongoClient=require('mongodb')。MongoClient,
格式=要求('util')。格式,
fs=需要('fs'),
http=require('http');
http.createServer(函数(req,res){
//应通过用户上载按钮触发
put();
//点击上传/上传按钮后触发
res.writeHead(200,{'Content-Type':'text/html'});
MongoClient.connect('mongodb://127.0.0.1:27017/test,函数(err,db){
如果(错误)抛出错误;
var collection=db.collection('test_insert');
collection.find().toArray(函数(错误,结果){
//console.dir(结果);
//让我们关闭数据库
//ret=结果[0];
console.log(结果[0]);
res.end(“”);
db.close();
});
});
//res.end(“Hello World\n”);
}).听(3030);
函数read(){
var image_base64=fs.readFileSync('./uploads/2088-1nqsb3l.jpg')。toString('base64');
返回图像_base64;
//console.log(base64_数据);
}
函数put(){
MongoClient.connect('mongodb://127.0.0.1:27017/test,函数(err,db){
如果(错误)抛出错误;
var collection=db.collection('test_insert');
插入({image:read()},函数(err,docs){
控制台日志(“插入数据”);
db.close();
});
});
}
函数get(){
var-ret;
MongoClient.connect('mongodb://127.0.0.1:27017/test,函数(err,db){
如果(错误)抛出错误;
var collection=db.collection('test_insert');
collection.find().toArray(函数(错误,结果){
//console.dir(结果);
//让我们关闭数据库
ret=结果[0];
db.close();
});
});
返回ret;
}
/*
MongoClient.connect('mongodb://127.0.0.1:27017/test,函数(err,db){
如果(错误)抛出错误;
var collection=db.collection('test_insert');
插入({a:base64_data},函数(err,docs){
collection.count(函数(err,count){
日志(格式(“count=%s”,count));
});
//使用find查找所有条目
collection.find().toArray(函数(错误,结果){
console.dir(结果);
//让我们关闭数据库
db.close();
});
});
});
*/

您必须通过
XMLHttpRequest
将图像从客户端发送到nodejs。然后像处理文件一样将其存储在mongo中,您可以通过
fs.readFileSync

阅读,那么,您的问题是什么?它是如何显示图像的?你能发布你的“动态”代码并告诉我们,你有什么问题吗!?问题是-如何将图像直接从网页发布到数据库并获取唯一id