gpt4 book ai didi

javascript - 使用 Dropzone JS 将文件上传到子文件夹

转载 作者:行者123 更新时间:2023-11-28 03:55:49 25 4
gpt4 key购买 nike

我有一个表单,其中有一个用于名称和放置区的字段。因此,如果我选择简单的方式,例如在 main upload 中上传文件文件夹然后它正在工作,但我想在子文件夹中上传文件,就像我通过 <input type="text" name="name" /> 获取文件夹名称一样上传文件应转到新生成的文件夹。

HTML:

<input type="text" name="name" class="form-control fl_name" />
<div class="dropzone"></div>

JS:

// CREATE FOLDER FOR FILE UPLOADS
$('.name-alert').hide();
$('.fl_name').on('change', function() {
var fl_name = 'name='+ $(this).val();
var fl_url = $(this).closest('form').attr('action');
$.ajax({
type: 'POST',
url: fl_url,
data: fl_name,
cache: false,
success: function(result){
if (result == '0') {
$('.name-alert').slideDown();
setTimeout(function() {
$('.name-alert').slideUp();
}, 2000);
}
}
});
});

// CREATE DROPZONE ENVIORMENT
var myDropzone = new Dropzone('div.dropzone', {
url: "http://localhost/build/assets/php/customer-query.php",
addRemoveLinks: true,
init: function() {
this.on('success', function( file, resp ){
var fl_name = 'name='+ $('.fl_name').val();
var fl_url = 'http://localhost/build/assets/php/customer-query.php';
$.ajax({
type: 'POST',
url: fl_url,
data: fl_name,
cache: false,
success: function(result){
console.log(result);
}
});
});
},
});

PHP:

// Create Folder On Input Field Change
$fname = $_POST['name'];
if (!file_exists('../uploads/'.$fname.'/')) {
mkdir('../uploads/'.$fname.'/', 0777, true);
} else {
echo '0';
}

// Upload Files
$fl_name = $_POST['name'];
$ds = DIRECTORY_SEPARATOR;
$storeFolder = '../uploads/'.$fl_name.'/';
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$targetPath = dirname( __FILE__ ) .$ds. $storeFolder .$ds;
$targetFile = $targetPath. $_FILES['file']['name'];
move_uploaded_file($tempFile,$targetFile);
}

在我的代码中,文件仍在主文件夹而不是新文件夹中上传。

谢谢

最佳答案

ajax 调用中的“数据”看起来不像 json 对象。尝试将其更改为:

$.ajax({
type: 'POST',
url: fl_url,
data: {'name':fl_name},
dataType: "json",
cache: false,
success: function(result){
console.log(result);
}
});

参见Passing data with jquery ajax如果您需要通过 ajax 使用 json 传递数据的进一步示例

您的 php 文件中可能还缺少以下内容来读取 json 输入:

$inputJSON = file_get_contents("php://input");
$result = json_decode($inputJSON,TRUE);

在什么情况下你需要改变

$fname = $_POST['name'];

$fname = $result['name'];

关于javascript - 使用 Dropzone JS 将文件上传到子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47555035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com