【问题标题】:Dropzone.js - upload folder structures and single filesDropzone.js - 上传文件夹结构和单个文件
【发布时间】:2024-04-24 06:45:01
【问题描述】:

我目前正在使用the structured folder uploader from "nuhil" 以通过dropzone.js 上传文件夹/完整的文件夹结构。

无论文件夹中有多少个文件夹等等,上传文件夹都非常有效。但是当我尝试上传单个文件时,它根本不起作用。

这是我用来上传的代码:

<?php

session_start();

$ds = DIRECTORY_SEPARATOR;
$storeFolder = '../uploads/'.$_SESSION['userid'].'/';

if (!is_dir($storeFolder)) {
    mkdir($storeFolder);
}

if (!empty($_FILES)) {

    $tempFile = $_FILES['file']['tmp_name'];

    $targetPath = dirname( __FILE__ ) . $ds . $storeFolder . $ds;

    $fullPath = $storeFolder.rtrim($_POST['path'], "/.");
    $folder = substr($fullPath, 0, strrpos($fullPath, "/"));

    if (!is_dir($folder)) {
        $old = umask(0);
        mkdir($folder, 0777, true);
        umask($old);
    }

    if (move_uploaded_file($tempFile, $fullPath)) {
        die();
    } else {
        die('e');
    }
}
?>

我想我也知道问题出在哪里,因为我尝试上传的文件总是被称为undefined 并且不可打开,它似乎也试图为单个文件创建一个文件夹,但在那里是无,它只是试图使一个没有价值(见mkdir($folder, 0777, true);行)。所以我知道问题是什么,但我不知道如何让它工作。有没有人知道单个文件也能正常工作?

【问题讨论】:

  • 我正在寻找相同的答案到目前为止我还没有找到任何东西
  • 我正在寻找相同的答案

标签: javascript php file-upload dropzone.js


【解决方案1】:

因为当您尝试上传单个文件时,“file.fullPath”是未定义的,您可以通过检查未定义来尝试 file.name。

this.on("sending", function(file) {
        var name = file.fullPath;
        if (typeof (file.fullPath) === "undefined") {
            name = file.name;
        }
$("#tmp-path").html('<input type="hidden" name="path" value="'+name+'" />')
});

【讨论】:

    最近更新 更多