javascript - 如何在使用 javascript 上传图像时显示图像
问题描述
此功能应显示要上传的图像。但是在选择文件时,它不显示图像。
function show_img(id_img) {
if(this.files && this.files[0])
{
var reader = new FileReader();
reader.onloadend = function(data) {
var image = document.getElementById(id_img);
image.src = data.target.result;
}
reader.readAsDataURL(this.files[0]);
}
}
function create_img()
{
//create image
var file_input = document.createElement('img');
file_input.id = "123_qwe";
file_input.height = "200";
file_input.width = "300";
contain.appendChild(file_input);
//btn upload image
var btn_image = document.createElement("INPUT");
btn_image.setAttribute("type", "file");
btn_image.name = "ref_img";
var id_image = "ref_img";
btn_image.id = id_image;
contain.appendChild(btn_image);
//Display image
document.getElementById(id_image).addEventListener("onchange", function(){
show_img.call(id_image);
console.log(id_image);
});
}
<div id="contain">
<Button id="btn_top" onclick="create_img();">create image</Button>
</div>
如何使图像出现在图像标签中?先感谢您。
解决方案
这是更新的代码。
注意:您为变量提供了一些错误的名称。确保纠正它们以减少混乱。
function show_img(id_img, input) {
if(input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function(data) {
var image = document.getElementById(id_img);
image.src = data.target.result;
}
reader.readAsDataURL(input.files[0]);
}
}
function create_img()
{
//create image
var file_input = document.createElement('img');
file_input.id = "123_qwe";
file_input.height = "200";
file_input.width = "300";
contain.appendChild(file_input);
//btn upload image
var btn_image = document.createElement("INPUT");
btn_image.setAttribute("type", "file");
btn_image.name = "ref_img";
var id_image = "ref_img";
btn_image.id = id_image;
contain.appendChild(btn_image);
//Display image
document.getElementById(id_image).addEventListener("change", function(e){
show_img(file_input.id, e.target);
console.log(id_image);
});
}
<div id="contain">
<Button id="btn_top" onclick="create_img();">create image</Button>
</div>
推荐阅读
- java - 如何在 if 条件下打开新的 javafx fxml 窗口?
- laravel - 在同一台服务器上分离 beanstalkd 队列
- reactjs - 我可以在没有子组件的情况下使用 matchPath 吗?
- sql - SQL 通过 3 个不同的表连接
- android - 调用 Activity.OnStop 时不调用 Fragment.OnStop
- eclipse - 如何在 Eclipse 插件中为所有项目添加代码模板?
- google-sheets - 如何在更多保留参考中拆分一张纸?
- python - 将python中的一维或二维数组复制/导出到excel文件?
- android - 在现有项目中使用 Zebra 库时出现 NullPointer
- javascript - Visual Studio代码找不到调试节点js的程序