gpt4 book ai didi

javascript - 将 Canvas 数据 URL 导出为 PDF——怎么做? DataURL 太长,无法传递到服务器

转载 作者:行者123 更新时间:2023-11-29 22:25:39 26 4
gpt4 key购买 nike

我将 Canvas 表示为 base64 字符串。我想将此字符串传递给服务器,以便服务器可以使用该数据制作 PDF 文档。

当我尝试将数据传递到服务器时收到 414 错误:“无法加载资源:服务器响应状态为 414(请求 URI 太长)。

我已成功下载图像客户端。我在实际检索和下载图像时没有任何问题,只是在塑造它所代表的文件类型方面。

$('#ExportPlanView').click(function (e) {
//planViewStage.toDataURL(function (e) { window.location = e.replace("image/png", "image/octet-stream")});
planViewStage.toDataURL(function (dataURL) {
var output = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");

$.ajax({
url: '../PlanView/ExportAsPDF',
data: { DataURL: output },
datatype: 'json',
success: function (stream) { window.location = stream; }
});
});
});

将输出分成更小的 block 并将每个 block 发送到服务器,让服务器重建这些 block ,制作 pdf,然后将该文件流发送回客户端以触发下载的正确解决方案是什么?

供引用 -- 数据 URL 约为 105k 个字符。

最佳答案

当您需要传递大量数据时,请使用 POST 请求。 $.ajax默认是GET,所以需要手动定义类型。

要使用 jQuery 发送 POST 请求,您可以使用如下内容:

$.ajax({
url: 'blah.php',
type: 'POST',
data: { DataURL: output },
datatype: 'json',
success: function() { ... }
})

关于javascript - 将 Canvas 数据 URL 导出为 PDF——怎么做? DataURL 太长,无法传递到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com