上传base64编码的图像是不好的做法吗?

时间:2019-03-30 23:35:39

标签: rest upload base64 backend

使用base64编码仅将上传到服务器是否存在问题?到达该位置后,即它将被发送到AWS并用作二进制文件,而不是base64字符串。

服务器对图像施加2 MB的限制。图像与其他数据一起在POST正文(JSON内容类型)中发送,例如:

def compare_digits(m, n):
read_ndigits = 0
same_digits = 0
while read_ndigits < 4:  #number of digits
    current_n = n % 10
    read_mdigits = 0
    while read_mdigits < 4:
        current_m = m % 10
        if current_n == current_m:
            same_digits += 1
        m //= 10
        read_mdigits += 1
    n //= 10
    read_ndigits += 1

return same_digits

然后服务器将能够上载到S3存储桶。

4 个答案:

答案 0 :(得分:0)

Bas64编码的图像是小尺寸(KB)图像的良好实践。 对于更大尺寸的图像,您可能会遇到尺寸错误。

尽管如果要使用(MB)大小的图像,我建议将其作为缩略图传递。

缩略图是图片或视频的缩小版本,用于帮助识别和整理它们,图像的作用与普通文本索引对单词的作用相同

https://www.npmjs.com/package/image-thumbnail

答案 1 :(得分:0)

对二进制图像进行编码的Base64的generally accepted result比原始图像大大约30%。如果服务器限制为2MB,则通过编码增加图像时,实际上将限制为1.4MB。 Base64不是压缩方法,它只是通过HTTP将二进制数据获取到服务器的一种方法。

如果您可以控制服务器,则改为使其接受gzip压缩的二进制数据,或者如果可以将图像放置在某处,则将其网址发送到请求中,服务器可以下载它。

答案 2 :(得分:0)

是的,我认为在上传图片时可以使用base64,因为您在应用程序中使用的是api。您需要转换为物理图像并获取文件名并将其存储在数据库中。

答案 3 :(得分:-1)

这就是我所做的,因为当我将图像上传到 mongodb 时,我没有足够的勇气 bcrypt 我的图像......哦,我确实得到了一个二进制数组,然后我需要将其转换为 base64 以显示在我的网页上。 ..我不确定哪个更小,但我有什么作品。

我确实必须将此添加到我的 MERN 页面以允许上传图片:: (注意:如果你使用 body-parser,这就是它要去的地方)

app.use(express.json({limit: '50mb'}));