图像数据库字段的预览仅适用于.png

时间:2018-03-22 08:58:09

标签: file-io wakanda

我可以使用此代码和krajee Bootstrap FileInput插件将图像上传到服务器,但是当我尝试将其可视化时,只有.png显示图像。

-------------------------代码--------------------- ----

    var currentFolder = ds.getDataFolder().path+"tmp."+extension; 
    var buffer2 = new Buffer(base64Texto,'base64');
    var vBlob2 = buffer2.toBlob();
    debugger;
    vBlob2.copyTo(currentFolder,"OverWrite")
    var imagen = loadImage(currentFolder);
    archivo.Previsualizacion = imagen;
    archivo.save();

编辑:

问题在于,当我将图像(.jpg或.pdf)存储在数据库的图像字段中时,预览为空白,但是Blob中的文件创建得很好。使用.png它可以很好地工作。

     var bufferFrom64 = new Buffer(base64Texto,'base64');
     var vBlob2 = bufferFrom64.toBlob(mimeType);
     vBlob2.copyTo(currentFolder,"OverWrite")
     var imagen = loadImage(currentFolder);
     archivo.Previsualizacion = imagen;
     archivo.Documento = vBlob2;
     archivo.save(); 

1 个答案:

答案 0 :(得分:0)

简而言之,Wakanda buffer.toBlob()与图像类型不一致,特别是.jpg或.pdf。 .png图像具有不同的实现,并将与toBlob()一起使用。

这是我用来解码用base64编码的图像的代码:

   var currentFolder = ds.getDataFolder().path+"tmp."+extension; 
   var bufferFrom64 = new Buffer(base64Texto, "base64");
   var outputFile   = File(currentFolder);
   if(!outputFile.exists)outputFile.create();
   var writestream = BinaryStream(outputFile, "Write");
   writestream.putBuffer(bufferFrom64);
   writestream.flush();
   writestream.close();

希望它有所帮助。