Dropzone.js-上传文件夹结构和单个文件
Dropzone.js - upload folder structures and single files
我目前正在使用来自"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);
行)。所以我知道问题出在哪里,但我不知道如何让它发挥作用。有人知道该怎么办吗,单个文件也能正常工作?
因为当你尝试上传单个文件时,"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+'" />')
});
相关文章:
- 仅使用文件对象选择单个文件
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- Grunt imagemin-观察多个文件/文件夹优化单个文件
- Vue.js:如何在单个文件组件中指定道具
- Dropzone.js-上传文件夹结构和单个文件
- jQuery文件上传库:如何点击单个文件进行上传
- 在单个文件中需要js和多个已编译的Handlebar.js模板
- TypeScript 1.8,多个.ts文件中的单个文件-应用程序结构
- 将 JavaScript 缩小的文件压缩为单个文件
- 使用文件输入选择多个 FIle 时删除单个文件
- 如何从单个文件导出多个类
- 使用单个文件集成整个Yeoman,AngularJS项目
- 在 node.js 中的单个文件中调用两个函数
- 使用 RejamableJS 取消、中止和重试单个文件上传
- 将行添加到文件时,如何使用单个文件描述符或流检测和读取它们
- 与 requirejs 连接并排除单个文件
- 如何在plupload中获取队列的总文件大小而不是单个文件大小
- 在浏览器中使用javascript将HTML页面的所有外部资源嵌入到单个文件中
- blueimp文件上载的单个文件上载问题
- grunt contrib clean不删除单个文件