相关疑难解决方法(0)

NodeJS写入base64图像文件

我的NodeJS-Server接收到base64编码的图片.

data:image/jpeg;base64,/9j/4QCcRXhpZgAASUkqAAgAAAA ... CiiigD//Z
Run Code Online (Sandbox Code Playgroud)

收到的数据应保存为jpg.因此我使用Buffer和FileSystemWriter:

var imageBuffer = new Buffer(data, 'base64'); //console = <Buffer 75 ab 5a 8a ...
fs.writeFile("test.jpg", imageBuffer, function(err) { //... });
Run Code Online (Sandbox Code Playgroud)

fs.writeFile不会调用错误.保存了jpeg文件,但我无法打开它.Image-Viewer说:

File is damaged or too big.
Run Code Online (Sandbox Code Playgroud)

原始文件大6kb,新文件7kb.

node.js

50
推荐指数
2
解决办法
6万
查看次数

如何使用Node.js将base64编码图像(字符串)直接上传到Google Cloud Storage存储桶?

目前,我正在使用@ google-cloud/storage NPM软件包将文件直接上传到Google云端存储分区.这需要一些技巧,因为我只有图像的base64编码字符串.我必须:

  • 解码字符串
  • 将其另存为文件
  • 将文件路径发送到以下脚本以上传到Google云端存储
  • 删除本地文件

我想避免将文件存储在文件系统中,因为我使用的是Google App Engine,如果删除操作因任何原因无效,我不想重载文件系统/留下垃圾文件.这就是我的上传脚本现在的样子:

// Convert the base64 string back to an image to upload into the Google Cloud Storage bucket
var base64Img = require('base64-img');
var filePath = base64Img.imgSync(req.body.base64Image, 'user-uploads', 'image-name');

// Instantiate the GCP Storage instance
var gcs = require('@google-cloud/storage')(),
    bucket = gcs.bucket('google-cloud-storage-bucket-name');

// Upload the image to the bucket
bucket.upload(__dirname.slice(0, -15) + filePath, {
    destination: 'profile-images/576dba00c1346abe12fb502a-original.jpg',
    public: true,
    validation: 'md5'
}, function(error, file) {

    if (error) {
        sails.log.error(error);
    }

    return res.ok('Image …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-cloud-storage google-cloud-platform

24
推荐指数
5
解决办法
1万
查看次数

Nodejs:如何返回具有相同响应(文本和图像)的不同内容类型?

我正在尝试学习nodejs,我认为最好的方法是尝试不使用express或任何其他非核心模块来做一些事情.我坚持试图获得一些文本和图像同时传递.我正在尝试的代码是:

var http = require('http');
var fs = require('fs');

var server = http.createServer(function(request,response) {

    fs.readFile('my_pic.jpg', function(error, file) {
        response.writeHead(200, {'content-type':'text/html'});
        response.write('<p>hi there!</p>');

        response.writeHead(200, {'content-type':'image/jpg'});
        response.write(file, 'image');

        response.end();
    });

});

var port = process.env.PORT || 8080;

server.listen(port, function() {
    console.log('Listening on port ' + port);
});
Run Code Online (Sandbox Code Playgroud)

理想情况下应该提供的是:

<html>
<body>
<p>hi there</p>
<img src='my_pic.jpg'/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但相反,什么都没有出现.

我试图把一个到Response.End()写"你好",这显示文本后,在那之后我试着换了文字和图片(包括标题),其显示的图像的地方,但我想不通如何同时显示两者,就像在真实的网页上一样.

你能解释一下如何将不同类型的内容放到同一个网页上 - 他们需要做出不同的回答吗?我在另一个问题上遇到的事情:

nodejs - 如何读取和输出jpg图像?

这样的东西看起来像解决方案,但我无法弄清楚如何将此应用于我的情况(我在服务器方面没有很多经验.)

非常感谢

编辑:从user568109的回复得到它:

var http = require('http');
var fs = require('fs');


var server = http.createServer(function(request,response) {
fs.readFile('my_pic.jpg', function(error, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

8
推荐指数
1
解决办法
2万
查看次数

Phonegap - 如何从base64字符串生成图像文件?

我正在为Android编写一个phonegap应用程序,我将base64 PNG字符串保存为文件.但是,我发现字符串只是转储到文件中,打开时无法将其视为图像.

我希望能够保存从base64字符串生成的图像.这就是我所拥有的:

Javascript(Formated for Phonegap):

/*** Saving The Pic ***/
var dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; //A simple red dot

function gotFS(fileSystem) {
    fileSystem.root.getFile("dot.png", {create: true, exclusive: false}, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {  
    fileEntry.createWriter(gotFileWriter, fail);
}

function gotFileWriter(writer) {
    writer.write(dataURL); //does not open as image
}

function fail(error) {
    console.log(error.code);
}
Run Code Online (Sandbox Code Playgroud)

我尝试编辑代码只保存图像数据,但它也没有用.(见下文)

function gotFileWriter(writer) {
     var justTheData = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");//Removes everything up to ...'base64,'
     writer.write(justTheData); //also does not show
 }
Run Code Online (Sandbox Code Playgroud)

触发everthing的HTML:

<p onclick="window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail)">Save a Dot</p>
Run Code Online (Sandbox Code Playgroud)

请帮忙.谢谢.

javascript base64 android phonegap-plugins cordova

6
推荐指数
1
解决办法
1万
查看次数

loopback-storage-component如何显示图片文件

我正在使用loopback-component-storage将图像上传到服务器. https://docs.strongloop.com/display/public/LB/Storage+component

我还有AngularJS JavaScript SDK,所以我的lb-services.js是动态更新的. https://docs.strongloop.com/display/public/LB/AngularJS+JavaScript+SDK

现在我想在我的网页中显示来自此环回组件存储模型的照片,称为容器,因此我可以在我的角度控制器方法getFile(来自lb-service)中使用,其中"获取指定容器内指定文件的信息".像那样:

$scope smthing = Container.getFile({container: 'news-imgs', file: 'smallpic.pnh'})

或者我可以使用方法下载,即"在指定容器中下载文件".像那样:

$scope smthing = Container.download({container: 'news-imgs', file: 'smallpic.png'})

在我的控制器中.

现在,问题是,当我在.html文件中写入时{{smthing}},第一种方法将显示给我

{ "container": "news-imgs", "name": "smallpic.png", "size": 757, "atime": "2015-12-01T11:49:36.840Z", "mtime": "2015-12-01T11:49:36.840Z", "ctime": "2015-12-01T11:49:36.840Z" }

而第二种方法将显示如此多的悲伤迹象,如下所示:

"0":"?","1":"P","2":"N","3":"G","4":"\r","5":"\n","6":"\u001a","7":"\n","8":"\u0000","9":"\u0000","10":"\u0000","11":"\r","12":"I","13":"H","14":"D","15":"R","16":"\u0000","17":"\u0000","18":"\u0000","19":"\u0014","20":"\u0000","21":"\u0000","22":"\u0000","23":"\u0012","24":"\b","25":"\u0003","26":"\u0000","27":"\u0000","28":"\u0000","29":"l","30":"\u000e","31":"\u000e","32":"\"","33":"\u0000","34":"\u0000","35":"\u0000","36":"\u0019","37":"t","38":"E","39":"X","40":"t","41":"S","42":"o","43":"f","44":"t","45":"w","46":"a","47":"r","48":"e","49":"\u0000","50":"A","51":"d","52":"o","53":"b","54":"e","55":" ","56":"I","57":"m","58":"a","59":"g","60":"e","61":"R","62":"e","63":"a","64":"d","65":"y","66":"q","67":"?","68":"e","69":"<","70":"\u0000","71":"\u0000","72":"\u0001","73":"?","74":"P","75":"L","76":"T","77":"E","78":"?","79":"?","80":"?","81":"?","82":"?","83":"?","84":"?","85":"\u0000","86":"r","87":"?","88":"?","89":"?","90":"?","91":"\u0000","92":"?","93":"?","94":"\u0000","95":"~","96":"?","97":"?","98":"?","99":"?","100":"\u0000","101":"x","102":"?","103":"\u0012","104":"?","105":"?","106":"\u0000","107":"","108":"?","109":"\t","110":"?","111":"?","112":"\u0016","113":"{","114":"?","115":"\u0002","116":"?","117":"?","118":"(",...etc

我认为这是Image对象,但在json中,对吗?

我也试图抛出{{smthing}}<img src="">标记,<img ng-src="">但它并没有工作过.

问题是:如何显示这张照片?请问有人可以帮助我吗?

问候,艾伦.

javascript node.js angularjs strongloop loopbackjs

5
推荐指数
1
解决办法
1953
查看次数