因此,我正在创建一个票证系统,我想做的是向我的票证中添加任何类型的文件,并将它们存储在我的数据库中.

推荐答案

如果要上载16MB以上的文件,可以使用gridFs.

100

除此之外,如果您想存储PDF或图像等文件,可以使用base64 strings.然后,您可以将文件作为string存储在数据库中.

您可以了解如何生成base64字符串以及如何在浏览器中查看它.

<!DOCTYPE html>
<html>

<head>
    <title>Convert to Base64</title>
    <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>

<body>
    <H1>Select file to upload and convert into base64 string</H1>
    <hr>
    <br>
    <label for="fileUpload">Choose file:</label>
    <input type="file" id="fileUpload" name="fileUpload" />
    <br><br>
    <button id="jsonConvert">Convert into Base64</button>
    <img style='display:block; width:100px;height:100px;' id='base64image' src='' />
    <iframe id='base64pdf' width='100%' height='100%' src=''>

    </iframe>
</body>

</html>
<script type="text/javascript">
    const toBase64 = file => new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = () => resolve(reader.result);
        reader.onerror = error => reject(error);
    });

    $('#jsonConvert').click(function () {
        const uploadedFile = document.querySelector('#fileUpload').files[0];
        toBase64(uploadedFile)
            .then(res => {
                const filetype = res.split("/")[0];
                if (filetype == "data:application") {
                    document.getElementById('base64pdf').src = res;
                } else if (filetype == "data:image") {
                    document.getElementById('base64image').src = res;
                }

                console.log(res);
            })
            .catch(err => {
                console.log(err);
            })
    });
</script>

100

您可以将文件上载到存储桶(如S3 bucket)中,并获取其链接,然后将该链接存储在数据库中.使用该链接可以查看它.

希望您能从以上方法中找到解决方案.

Database相关问答推荐

如何将使用模块创建的 Redis RDB 文件迁移到没有该模块的部署? (RedisStack 版本 7.2+ 中不再包含 RedisGraph)

如何在保持相同 Flyway 校验和的同时更正语法?

如何将初始数据放入数据库

MongoDB和Redis有什么区别?

Android:我可以对多个数据库文件使用一个 SQLiteOpenHelper 类吗?

PostgreSQL 将列从整数转换为文本

每个请求可以多次查询 MongoDB 吗?

如何更改 SQLite 数据库列中的值?

ODBC 与 JDBC 与 ADO.NET

返回 DataSet/DataTable 的 PowerShell 函数中的奇怪行为

SqlAlchemy 中的动态表创建和 ORM 映射

为什么在连接表上有一个主键不好?

Sqlite 判断表是否为空

Sqlite 和 Python - 使用 fetchone() 返回字典?

为什么用 varbinary 而不是 varchar

将查询限制为一条记录会提高性能吗

Select 多模型 DBMS 时要考虑哪些因素? (OrientDB 与 ArangoDB)

使用 liquibase 更新表中的一行

SQLite 数据库方案作为实体关系模型

Cassandra - 事务支持