javascript - Summernote 在 POST 中添加 "files"字段

标签 javascript php jquery html summernote

我正在尝试使用 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/

相关文章:

javascript - 带有 If 语句的循环运行缓慢,太慢

javascript - 用于进行圆形选择的 jQuery 插件

php - 将txt文件分解为多维数组

php - 从另一个对象获取调用者类实例

c# - 在 asp.net C# 页面中提醒

javascript - Ruby on Rails - 将文本字段与选择结合起来?

javascript - 使用 Angular 获取 div 的 clientHeight?

javascript - angular-ui select2 initSelection 没有被调用

php - 尝试在 Amazon EC2 上升级 sqlite

php - jQuery 自动完成将查询转换为小写