带有上传附件选项的文本区域 HTML/JQuery
Text area with upload attachments options HTML/JQuery
我创建了允许用户输入文本的文本区域,如下所示:
<!DOCTYPE html>
<html>
<body>
<textarea rows="4" cols="50">
Please type your favourite foods here and upload attachments if you want!</textarea>
</body>
</html>
我想允许用户允许 drag/drop 或将文件附件上传到文本区域,但我不太确定如何实现。我对网络开发还很陌生,我不确定这样的功能会被称为什么。我已经创建了我想要的屏幕截图,见下文 - 与 gmail compose window 类似的内容。请问谁能帮帮我,谢谢。
一旦用户编写并上传了文件,我会将它们保存到数据库中。
我建议使用 DropzoneJS 库。
使用 options you need and use the sending 事件创建 Dropzone
对象以将文本区域文本添加到 POST 请求。
将 default template and add your HTML inside div with template-container
id. Then add previewTemplate 属性 更改为 myDropzone
选项
价值
document.querySelector('#template-container').innerHTML
Dropzone.autoDiscover = false;
$(document).ready(function() {
Dropzone.options.myDropzone = {
url: $('#my-dropzone').attr('action'),
paramName: "file",
maxFiles: 5,
maxFilesize: 20,
uploadMultiple: true,
thumbnailHeight: 30,
thumbnailWidth: 30,
init: function() {
this.on('sending', function(file, xhr, formData) {
formData.append('favouriteFoodText', document.getElementById('favourite-food-text').value);
}),
this.on("success", function(file, response) {
console.log(response);
})
}
}
$('#my-dropzone').dropzone();
});
#b-dropzone-wrapper {
border: 1px solid black;
}
#b-dropzone-wrapper .full-width {
width: 100%
}
#b-dropzone-wrapper textarea {
resize: none;
border: none;
width: 99%;
}
#my-dropzone {
top: -5px;
position: relative;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.0/min/dropzone.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.0/min/dropzone.min.css" rel="stylesheet" />
<div id="b-dropzone-wrapper">
<textarea rows=5 id="favourite-food-text" placeholder="please write some text here"></textarea>
<form action="file-upload.php" id="my-dropzone" class="dropzone full-widht" method="post" enctype="multipart/form-data"></form>
<input type="submit" value="Submit your entry" class="full-width" />
</div>
在服务器端提交表单后,传输的数据将被PHP解析并保存在$_POST
和$_FILES
超级全局数组中。
我创建了允许用户输入文本的文本区域,如下所示:
<!DOCTYPE html>
<html>
<body>
<textarea rows="4" cols="50">
Please type your favourite foods here and upload attachments if you want!</textarea>
</body>
</html>
我想允许用户允许 drag/drop 或将文件附件上传到文本区域,但我不太确定如何实现。我对网络开发还很陌生,我不确定这样的功能会被称为什么。我已经创建了我想要的屏幕截图,见下文 - 与 gmail compose window 类似的内容。请问谁能帮帮我,谢谢。
一旦用户编写并上传了文件,我会将它们保存到数据库中。
我建议使用 DropzoneJS 库。
使用 options you need and use the sending 事件创建 Dropzone
对象以将文本区域文本添加到 POST 请求。
将 default template and add your HTML inside div with template-container
id. Then add previewTemplate 属性 更改为 myDropzone
选项
价值
document.querySelector('#template-container').innerHTML
Dropzone.autoDiscover = false;
$(document).ready(function() {
Dropzone.options.myDropzone = {
url: $('#my-dropzone').attr('action'),
paramName: "file",
maxFiles: 5,
maxFilesize: 20,
uploadMultiple: true,
thumbnailHeight: 30,
thumbnailWidth: 30,
init: function() {
this.on('sending', function(file, xhr, formData) {
formData.append('favouriteFoodText', document.getElementById('favourite-food-text').value);
}),
this.on("success", function(file, response) {
console.log(response);
})
}
}
$('#my-dropzone').dropzone();
});
#b-dropzone-wrapper {
border: 1px solid black;
}
#b-dropzone-wrapper .full-width {
width: 100%
}
#b-dropzone-wrapper textarea {
resize: none;
border: none;
width: 99%;
}
#my-dropzone {
top: -5px;
position: relative;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.0/min/dropzone.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.0/min/dropzone.min.css" rel="stylesheet" />
<div id="b-dropzone-wrapper">
<textarea rows=5 id="favourite-food-text" placeholder="please write some text here"></textarea>
<form action="file-upload.php" id="my-dropzone" class="dropzone full-widht" method="post" enctype="multipart/form-data"></form>
<input type="submit" value="Submit your entry" class="full-width" />
</div>
在服务器端提交表单后,传输的数据将被PHP解析并保存在$_POST
和$_FILES
超级全局数组中。