我正在尝试将图像文件发送到 MySQL (mediumblob)。我可以使用 file_get_contents($image)
轻松获取文件内容并将其发送到 MySQL,但是,我使用的服务器不允许我提交任何上传的文件,因此无法获取该文件的内容。
有没有办法只选择文件,将其放入变量中而不提交表单?提前致谢。
最佳答案
遗憾的是您无法上传文件。不过,您可以尝试一些想法。这是其中之一:
- 使用 JavaScript 读取文件。在这里 fiddle :https://jsfiddle.net/d5mg66uw/
- 使用 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:这在旧版浏览器上可能会变得很麻烦
关于php - 有没有一种方法可以在不提交 html/php 表单的情况下获取图像文件内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29882067/