PHP fwrite将数据块写入视频文件

PHP fwrite将数据块写入视频文件

问题描述

我有一个非常大的视频文件,我在使用dropzone js将它按块发送,我可以看到块按正确的顺序发送到我的php代码中,我能够从第一个块创建文件,但当我尝试从其他块fwrite到文件时,什么都没有发生,我的视频文件大小为0字节,而我期望的大小是27.7MB,我做错了什么?

//Check if file exists
        if(file_exists(uploadPath .uploadedFiles['videos']->getClientFilename())) {
          //if yes, add onto the file
          file = fopen(uploadPath . uploadedFiles['videos']->getClientFilename(), "w");
          //chunk = fread(uploadedFiles['videos'], 1024);
          fwrite(file, uploadedFiles['videos']->getStream()->getContents());
          fclose(file);

        }
        else
        {
          //if no, create the file from first chunk
          uploadedFiles['videos']->moveTo(uploadPath . $uploadedFiles['videos']->getClientFilename());
        }

解决方案

你应该使用fopen函数,指定模式为a

$file = fopen($uploadPath . $uploadedFiles['videos']->getClientFilename(), "a");

https://www.php.net/manual/en/function.fopen.php

模式 w 清除整个文件并设置新内容。模式 a 在末尾追加内容。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

PHP 精选笔记