У меня есть 2 формы на одной странице, первая: 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, и всякий раз, когда я пытался загрузить файлы, значение на скрытом вводе всегда «неопределено»
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);
}
?>
Других решений пока нет …