将 dropzone 上传的文件名传递给隐藏的输入字段
Pass dropzone uploaded filename to hidden input field
我在一页中有 2 个表单,first:dropzone 第二个是:用户需要填写的表单。我想当用户在 dropzone 中上传文件时,它会以第二种形式添加一个隐藏的输入。这是我的表格
<form action="/users/upload.php" class="dropzone needsclick dz-clickable" id="poster"></form>
<form action='' method='post' name='create' enctype="multipart/form-data">
<div id="ideaform"></div>
</form>
这是我的 upload.php
<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$x = explode('.', $name);
$ext = strtolower(end($x));
$name = md5(time().$name).'.'.$ext;
move_uploaded_file($tempFile, 'images/uploaded/'.$name);
}
?>
我在网上搜索了有关此方法的信息,以获取文件名并将其置于隐藏输入的值上,发现了这个 jQuery 并且每当我尝试上传文件时,隐藏输入上的值总是 "undefined"
Dropzone.options.poster = {
maxFiles:1,
acceptedFiles: "image/*",
init: function() {
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
this.on('success', function(file, response) {
$("#ideaform").append($('<input type="hidden" ' + 'name="files" ' + 'value="' + response.fileName + '">'));
});
}
};
我哪里错了?
非常感谢。
我找到的解决方案是使用 JSON。这是代码:
Dropzone.options.poster = {
acceptedFiles: "image/*",
maxFilesize: 5, // MB
maxFiles: 1,
init: function() {
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
this.on('success', function(file, response) {
JSON.parse(response);
console.log(response);
$("#ideaform").append($('<input type="hidden" name="file" value='+response+'>'));
});
}
};
对于表单操作,我得到了这个
<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$x = explode('.', $name);
$ext = strtolower(end($x));
$name = md5(time().$name).'.'.$ext;
move_uploaded_file($tempFile, 'images/uploaded/'.$name);
$ar = $name;
echo json_encode($ar);
}
?>
我在一页中有 2 个表单,first:dropzone 第二个是:用户需要填写的表单。我想当用户在 dropzone 中上传文件时,它会以第二种形式添加一个隐藏的输入。这是我的表格
<form action="/users/upload.php" class="dropzone needsclick dz-clickable" id="poster"></form>
<form action='' method='post' name='create' enctype="multipart/form-data">
<div id="ideaform"></div>
</form>
这是我的 upload.php
<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$x = explode('.', $name);
$ext = strtolower(end($x));
$name = md5(time().$name).'.'.$ext;
move_uploaded_file($tempFile, 'images/uploaded/'.$name);
}
?>
我在网上搜索了有关此方法的信息,以获取文件名并将其置于隐藏输入的值上,发现了这个 jQuery 并且每当我尝试上传文件时,隐藏输入上的值总是 "undefined"
Dropzone.options.poster = {
maxFiles:1,
acceptedFiles: "image/*",
init: function() {
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
this.on('success', function(file, response) {
$("#ideaform").append($('<input type="hidden" ' + 'name="files" ' + 'value="' + response.fileName + '">'));
});
}
};
我哪里错了? 非常感谢。
我找到的解决方案是使用 JSON。这是代码:
Dropzone.options.poster = {
acceptedFiles: "image/*",
maxFilesize: 5, // MB
maxFiles: 1,
init: function() {
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
this.on('success', function(file, response) {
JSON.parse(response);
console.log(response);
$("#ideaform").append($('<input type="hidden" name="file" value='+response+'>'));
});
}
};
对于表单操作,我得到了这个
<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$x = explode('.', $name);
$ext = strtolower(end($x));
$name = md5(time().$name).'.'.$ext;
move_uploaded_file($tempFile, 'images/uploaded/'.$name);
$ar = $name;
echo json_encode($ar);
}
?>