小编mar*_*rle的帖子

为什么Spring Data仍然使用空引用作为返回值?

这更像是一个改进的建议,而不是一个问题.

通过发明空引用,我们都知道Tony Hoare的"十亿美元错误".在的维基谷歌建议番石榴库,以避免使用空.

我非常欣赏Spring Data项目,我们在许多项目中使用Spring Data MongoDB.您是否有可能用Optional<T>?替换所有可能的空引用返回值?我认为在使用Spring Data存储库抽象时这将是一个很大的改进.

我知道很多接口都需要更改,但代码更改几乎是微不足道的,只需将返回类型包装在一个Optional.of(returnValue).

spring-data

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

在浏览器中解码 Base64 编码的 PDF 内容

我们在后端 (PHP) 中使用dompdf将 HTML 转换为 PDF 。dompdf 生成的输出是 Base64 编码的

$output = $dompdf->output();
base64_encode($output);
Run Code Online (Sandbox Code Playgroud)

这个 Base64 编码的内容作为文件保存在服务器上。当我们像这样解码这个文件内容时:

cat /tmp/55acbaa9600f4 | base64 -D > test.pdf
Run Code Online (Sandbox Code Playgroud)

我们得到一个合适的 PDF 文件。

但是当我们将 Base64 内容作为 JSON 对象内的字符串值传输到客户端时(服务器提供了 RESTful API...):

{
  "file_data": "...the base64 string..."
}
Run Code Online (Sandbox Code Playgroud)

并使用 atob() 对其进行解码,然后创建一个 Blob 对象以稍后下载文件,PDF 始终为“空”/损坏。

$scope.downloadFileData = function(doc) {
  DocumentService.getFileData(doc).then(function(data) {
    var decodedFileData = atob(data.file_data);
    var file = new Blob([decodedFileData], { type: doc.file_type });
    saveAs(file, doc.title + '.' + doc.extension);
  });
};
Run Code Online (Sandbox Code Playgroud)

当我们记录解码的内容时,似乎内容被“破坏”了,因为几个符号与我们使用base64 -D在服务器上解码内容时不一样。

当我们编码/解码简单文本/普通文档的内容时,它按预期工作。但是所有二进制(或非 ASCII 格式)都不起作用。 …

javascript pdf base64 encoding json

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

标签 统计

base64 ×1

encoding ×1

javascript ×1

json ×1

pdf ×1

spring-data ×1