Summernote 将“文件”字段添加到 POST
Posted
技术标签:
【中文标题】Summernote 将“文件”字段添加到 POST【英文标题】:Summernote adds "files" field to POST 【发布时间】:2020-05-13 06:26:47 【问题描述】:我正在尝试将 Summernote 用作表单中的增强文本区域字段。提交表单后,我将$_POST
变量发送到我的php 后端。在一些意外行为之后,我尝试打印 $_POST
并注意到 Summernote 在其中添加了 2 个字段 - 通常的表单字段(在本例中为“描述”)和“文件”。我在任何地方都没有发现这种行为,而且我没有在 Summernote 内部或外部使用任何文件上传,所以我认为这要么是一个奇怪的错误,要么是我在某处犯了错误。我可以轻松解决这个问题,但我只是想知道我是否做错了什么和/或是否有办法阻止它这样做。
我使用的是 PHP 7.1,BS4 版本的 Summernote 0.8.15,我没有收到任何控制台错误。
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,但是通过查看他们网站上的演示,我可以看到他们有一个名为 files 的输入,它具有多个属性。我认为它用于存储任何图像放入编辑器的文件。 【参考方案1】:所以通过一些研究,看起来 Summernote 默认以 base64 格式提交图像和文件。即使您没有选择任何图像或文件,也会使用名为“文件”的输入,这就是您在帖子数据中看到文件变量的原因。
在进行研究时发现了这些:
提到base64: https://github.com/summernote/summernote/issues/72
关于如何不使用base64的问题: Summernote - Image url instead of Base64
什么是base64? What is base 64 encoding used for?
【讨论】:
谢谢,很高兴知道。我觉得除非配置中明确允许上传图片,否则这种情况不应该发生,但是好吧。以上是关于Summernote 将“文件”字段添加到 POST的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Bootstrap 4 添加到库 django-summernote?
Django-Admin 和 Django-Summernote 在我的表单中创建一个文件字段