php - 有没有一种方法可以在不提交 html/php 表单的情况下获取图像文件内容?

标签 php jquery html mysql image-uploading

我正在尝试将图像文件发送到 MySQL (mediumblob)。我可以使用 file_get_contents($image) 轻松获取文件内容并将其发送到 MySQL,但是,我使用的服务器不允许我提交任何上传的文件,因此无法获取该文件的内容。

有没有办法只选择文件,将其放入变量中而不提交表单?提前致谢。

最佳答案

遗憾的是您无法上传文件。不过,您可以尝试一些想法。这是其中之一:

  1. 使用 JavaScript 读取文件。在这里 fiddle :https://jsfiddle.net/d5mg66uw/
  2. 使用 ajax 调用将文件作为字符串上传
  3. 将文件保存在服务器上

您可以使用 JavaScript 轻松地从计算机读取文件,如下所示:

function readSingleFile(evt) {
    var f = evt.target.files[0];

    if (f) {
        var r = new FileReader();
        r.onload = function (e) {
            var contents = e.target.result;
            alert("Got the file.n" + "name: " + f.name + "n" + "type: " + f.type + "n" + "size: " + f.size + " bytesn" + "starts with: " + contents.substr(1, contents.indexOf("n")));
        }
        r.readAsText(f);
    } else {
        alert("Failed to load file");
    }
}

document.getElementById('fileinput').addEventListener('change', readSingleFile, false);

文件内容将位于contents变量中

然后只需使用即可上传

$.post('fileuploading.php', {filecontents: contents})

你就完成了。将其输入数据库或将其保存为图像。多么优雅的解决方案。

FIY:这在旧版浏览器上可能会变得很麻烦

关于php - 有没有一种方法可以在不提交 html/php 表单的情况下获取图像文件内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29882067/

相关文章:

javascript - 如何删除绑定(bind)到单击事件的任何 jQuery 操作?

javascript - HTML 视频白平衡编辑

jquery - 在控制台中禁用 JS Cookie

php - 部署 Symfony2 项目

php - mySQL - 如何集成此 "last 3 days only"查询

php - sqlite 具有多个 like

html - 使用 WSL 时从 vscode 打开 html 文件的最佳方法是什么?

php - 表名错误,php/mysql

javascript - 如何使复选框用作多选选项?

javascript - Bootstrap 表单动态添加删除带有字段的表单