【问题标题】:Is there a way of getting an image file contents without submitting a form in html/php?有没有办法在不提交 html/php 表单的情况下获取图像文件内容?
【发布时间】:2015-07-05 02:22:30
【问题描述】:

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

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

【问题讨论】:

  • 为什么将图像作为 blob 存储在数据库中,而不是创建一个安全的上传过程?
  • 您能在这里写下您尝试获取 url 的图像类型吗?是 html 内容中的图像 li
    如果您尝试从 html 内容中获取 img url,有很多方法可以做到这一点
  • 您好,内容只是一张jpg图片,然后直接获取其中的内容,无需点击提交按钮。谢谢。

标签: php jquery html mysql image-uploading


【解决方案1】:

可惜不能上传文件。但是,您可以尝试几种想法。这是其中之一:

  1. 使用 javascript 读取文件。在这里小提琴: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:这在旧浏览器上可能会变得很麻烦

【讨论】:

  • 感谢您的帮助。我会尝试一下,我对 JS 不是很好,但会试一试。再次感谢!
【解决方案2】:

如果问题解释正确,请尝试使用event.preventDefault()

var _files = [];
$("form").on("change", function(event) {
  event.preventDefault();
  _files.push(e.target.files[0]);
  console.log(_files);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<form method="POST" action="/abc">
  <input type="file" accepts="image/*" />
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-28
    • 2011-12-04
    • 2013-10-24
    • 2022-11-23
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多