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

有没有一种方法可以在不提交html/php表单的情况下获取图像文件内容?,php,jquery,html,mysql,image-uploading,Php,Jquery,Html,Mysql,Image Uploading,我正在尝试向MySQL(mediumblob)发送一个图像文件。我可以使用file\u get\u contents($image)轻松获取文件内容,并将其发送到MySQL。但是,我使用的服务器不允许我提交任何上传的文件,因此根本无法获取文件内容 是否有一种方法可以选择文件,将其放入变量中而不提交表单?提前感谢。如果问题解释正确,请尝试使用 var\u文件=[]; $(“形式”)。在(“变更”上,功能(事件){ event.preventDefault(); _files.push(e.tar

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


是否有一种方法可以选择文件,将其放入变量中而不提交表单?提前感谢。

如果问题解释正确,请尝试使用

var\u文件=[];
$(“形式”)。在(“变更”上,功能(事件){
event.preventDefault();
_files.push(e.target.files[0]);
console.log(_文件);
})

很遗憾你不能上传文件。然而,有几个想法你可以尝试。这是其中之一:

  • 使用javascript读取文件。在这里拉小提琴:
  • 使用ajax调用以字符串形式上载文件
  • 将文件保存到服务器上
  • 您可以使用如下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:这在旧浏览器上可能会变得很棘手

    为什么要将图像作为blob存储在数据库中,而不是创建一个安全的上载过程?你能在这里写下你试图获取url的图像类型吗?。如果你试图从html内容中获取img url,有很多方法可以做到这一点,内容只是一个jpg图像,然后无需点击提交按钮即可获取其内容。谢谢,谢谢你的帮助。我会尝试一下,我对JS不是很在行,但会尝试一下。再次感谢!