为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 连接从 Dropzone.js 上传的分块文件?

如何使用 PHP 连接从 Dropzone.js 上传的分块文件?

PHP
婷婷同学_ 2021-06-12 22:21:35
我正在使用 Dropzone.js 获取各种类型的文件(包括图像和非图像,如 PDF),并将它们以 1mb 块的形式上传到我们的服务器。然后我尝试用 PHP 连接文件,然后将它们上传到我们公司的 FileMaker 数据库。到目前为止,我已经能够像他们应该的那样将文件分块上传。我将它们全部存储在具有相同“代号”的临时“上传”文件夹中,并在每个名称的末尾附加“-INDEX#”(INDEX# 是正在上传的块 #,由 Dropzone 传递)。我已经将失败隔离到 PHP 循环遍历已经上传的块以获取内容的部分。具体来说,当我去获取内容时,我尝试使用 PHP 的“realpath”将块的文件路径保存到一个变量中,以获取绝对路径,并作为文件存在的真/假检查。毫无疑问,PHP 无法“看到”该文件。我不是文件夹权限方面的专家,因此很有可能与此有关,而我只是不知道如何处理它。您会看到我确实在 PHP 顶部的 uploads/ 目录中尝试了 chmod。我只包含了下面的 PHP 代码,没有包含任何 javascript。我不确定 JS 是否相关,因为它显然与实际的块上传工作得很好。下面的 PHP 文件与块要结束的uploads/ 文件夹位于同一目录中。<?phpheader("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");header("Cache-Control: post-check=0, pre-check=0", false);header("Pragma: no-cache");/* ========================================  VARIABLES======================================== */// chunk variables$fileId = $_POST['dzuuid'];$chunkIndex = $_POST['dzchunkindex'] + 1;$chunkTotal = $_POST['dztotalchunkcount'];// file path variables$ds = DIRECTORY_SEPARATOR;$targetPath = dirname( __FILE__ ) . "{$ds}uploads{$ds}";$fileType = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));$fileSize = $_FILES["file"]["size"];$filename = "{$fileId}-{$chunkIndex}.{$fileType}";$targetFile = $targetPath . $filename;// change directory permissionschmod(realpath($targetPath), 0777);/* ========================================  DEPENDENCY FUNCTIONS======================================== */$returnResponse = function ($info = null, $filelink = null, $status = "error") {  die (json_encode( array(    "status" => $status,    "info" => $info,    "file_link" => $filelink  )));};
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 293 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信