我正在尝试在我的网站上上传图像,并将其作为base64编码的字符串添加到数据库中。问题是我无法通过java接收上传的文件路径。在前端,我正在使用HTML和javascript,这是HTML标记:
<div class="col-xs-6">
<label>passport image </label><input id="image-input" type="file"
placeholder="file">
</div>
在我添加的javascript中:
document.getElementById("image-input").value;
到达我的图像的路径为“ C:\ fakepath \ IMAGE_NAME”。 我需要一种将照片或其路径发送到Java代码的方法,如何在不使用jsf或spring的情况下执行此操作。
答案 0 :(得分:0)
某些浏览器具有一项安全功能,可阻止JavaScript 知道文件的本地完整路径。这很有意义-作为客户,您 不想服务器知道您本地计算机的文件系统。
我在输入onchange事件上使用对象FileReader作为输入 文件类型!本示例使用readAsDataURL函数,为此 您应该有标签的原因。 FileReader对象也有 readAsBinaryString获取二进制数据,以后可以将其用于 在您的服务器上创建相同的文件
示例:
var input = document.getElementById("inputFile");
var fReader = new FileReader();
fReader.readAsDataURL(input.files[0]);
fReader.onloadend = function(event){
var img = document.getElementById("yourImgTag");
img.src = event.target.result;
}
答案 1 :(得分:0)
试试这个!使用:replace
var imgpath = document.getElementById("image-input").value;
var newPath = imgpath .replace("C:\\fakepath\\", "")