我尝试通过gridfs(没有临时文件)读出保存在mongodb中的图像,它应该直接发送到ajax,将其注入html
当我使用我的实际功能时,会形成一个大的位字符串并发送到客户端(保存在 ajax 响应变量中)
但是当它到达客户端时,这些位不再正确
所以我寻找一种在发送图片之前对图片进行编码的方法(进入base64)(或者还有其他方法吗?)
服务器端 - javascript、gridfs
exports.readFileFromDB = function(req, res, profile, filename, callback){
console.log('Find data from Profile ' + JSON.stringify(profile));
var GridReader = new GridStore(db, filename,"r");
GridReader.open(function(err, gs) {
var streamFile = gs.stream(true);
streamFile.on("end", function(){
});
// Pipe out the data
streamFile.pipe(res);
GridReader.close(function(err, result) {
});
客户端 - javascript ajax 调用:
function imgUpload(){
var thumb = $("#previewPic");
$('#uploadForm').ajaxSubmit({
beforeSend:function(){
//launchpreloader();
},
error: function(xhr) {
//status('Error: ' + xhr.status);
},
success: function(response) {
console.log(response);
var imageData = $.base64Encode(response);
console.log(imageData);
thumb.attr("src","data:image/png;base64"+imageData);
$("#spanFileName").html("File Uploaded")
}
});
}