我正在尝试使用 Summernote 作为表单中的增强文本区域字段。提交表单后,我将 $_POST
变量发送到我的 PHP 后端。在发生一些意外行为后,我尝试打印 $_POST
并注意到 Summernote 添加了 2 个字段 - 通常的表单字段(本例中为“描述”)和"file"。我还没有在任何地方找到这种行为的记录,而且我没有在 Summernote 内部或外部使用任何文件上传,所以我相信这要么是一个奇怪的错误,要么是我在某个地方犯了错误。我可以轻松解决这个问题,但我只是想知道我是否做错了什么和/或是否有办法阻止它这样做。
我使用的是 PHP 7.1、Summernote 0.8.15 的 BS4 版本,并且没有收到任何控制台错误。
HTML/PHP:
<div class="form-group">
<label for="summernote">Description</label>
<textarea name="description" id="summernote" class="form-control"></textarea>
</div>
...
<?php
if(!empty($_POST))
{
print_r($_POST); //Array ( other fields... [description] => test [files] => )
}
?>
JS:
$('#summernote').summernote({
height: 150,
toolbar: [
['style', ['bold', 'italic', 'underline']],
['fontsize', ['fontsize']],
['color', ['forecolor']],
['para', ['ul', 'ol', 'paragraph']]
],
fontSizes: ['14', '16', '18', '20', '24', '28', '32']
});
最佳答案
通过一些研究,Summernote 默认情况下会提交 base64 格式的图像和文件。即使您没有选择任何图像或文件,也会使用名为“files”的输入,这就是您在发布数据中看到 files 变量的原因。
在进行研究时发现了这些:
提及base64: https://github.com/summernote/summernote/issues/72
关于如何不使用base64的问题: Summernote - Image url instead of Base64
什么是base64? What is base 64 encoding used for?
关于javascript - Summernote 在 POST 中添加 "files"字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59938588/