我正在使用 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
提交
取消