当前位置: 首页 > 知识库问答 >
问题:

无法通过Ajax Post将base64视频发送到PHP

岳昊空
2023-03-14

当我尝试上传16.9 MB大小的MP4视频时,使用ajax async post将其上传到PHP文件,控制台会触发一个错误,提示:posthttp://website.com/proc_vids.phpnet::ERR_EMPTY_响应

我知道这个问题与PHP内存限制有关,因为当我设置为200 MB时,一切正常,但当我将其更改回100 MB时,就会发生此错误。

我甚至无法将POST发送到PHP变量,因为一旦发出ajax POST调用,它就会触发错误,甚至不会在服务器端(PHP)上执行任何操作。以下是ajax帖子代码:

var proc = 1;
video = document.getElementById('preview_video').src;
    $.ajax({
        'async': true,
        'type': "POST",
        'global': false,
        'dataType': 'json',
        'url': "proc_vids.php",
        'data': {proc: proc, video: video}
    }).done(function () {
            //Do something
            });

PHP代码:

$proc = $_POST['proc'];

if ($proc == 1){

//$video = $_POST['video'];
}

如您所见,我注释了将POST传递给变量并仍然触发错误的行。

如何处理包含base64代码的视频变量,以避免扩展占用如此高的内存级别?在不设置更高的内存限制的情况下,是否有其他选择?

共有1个答案

祖迪
2023-03-14

多亏了cmorrissey,问题解决了!

我使用了与本文所述相同的方法:将HTML5画布转换为要上传的文件?

将AJAX POST作为FormData发送,并将base64数据转换为Uint8Array,将其转换为blob,这是在发布时不分配PHP内存的关键。但是要小心,因为旧的浏览器可能不支持blob。

谢谢大家;)

 类似资料:
  • 我有一个YouTube频道。我想为我的网站添加新功能: 用户使用其google帐户进行身份验证。 用户创建自己的视频播客(使用此小部件),并将其上载到自己的youtube帐户。 之后,我使用YouTube API将用户视频移动到我的频道 有没有可能允许一些用户在我的频道上传他们账户的视频?也许用户可以通过Google Plus做到这一点? 附注:我看过一些文章

  • 我最终尝试使用维特尔蒂API发送传真。我在 EC2 上有一个 API,我从我的 React 原生应用程序调用它: 但是,这会返回错误。如果我将的值改为类似于

  • 问题内容: 编辑:整个问题原来是网络问题,但是如果您看到有关如何优化流程的任何想法,我仍然会感激不尽。 我对Servlets还是很陌生,在不久的将来,我遇到了一个与性能有关的问题。我正在尝试通过Google Chrome浏览器中的XHR对象发送视频文件。视频文件存储在Blob对象中。我在JavaScript脚本中使用了此功能: 它运行良好,因为Blob到达Servlet,在这里我使用以下代码对其进

  • 我目前有一个邮件服务器正在运行。我可以通过 mywebsite.com/roundcube/ 从这个网站我可以发送和接收电子邮件适当。日志显示所有的邮件进出都很好。我从这里发到我的gmail账户,然后又发回来。 然而,我真正想做的是使用javax mail从java发送一些邮件。