javascript - 上传时无法通过 jQuery 显示图像
问题描述
现在我有一个在加载时显示图像的 url。但是,可以选择通过表单输入替换此图像。我希望上传的图片在上传后立即显示,以便用户对其进行评估。
我正在尝试通过 jQuery 完成此操作,但我无法让它工作。
这是我的代码:
HTML:
<div class="form-group">
<label for="Image">Image</label>
<input type="file" id="Image" name="Image" accept="image/*">
<img src="..\{{ workshop_info[4] }}" id="output">
</div>
查询:
<script>
$(document).ready(function() {
$("#Image").change(function(e){
$("#output").attr("src", e.target.files[0]);
});
});
</script>
解决方案
您可以通过使用FileReader
功能来做到这一点。
我重新创建了您的示例,该示例在加载时显示图像
choose file
一旦我通过单击并选择文件上传自己的图像。load_images
使用我创建的图像 div选择后,将预览该文件。
选择文件后,我会将src
现有图像替换为来自的新 srcreadAsDataURL
您可以在此处详细阅读有关 FileReader的更多信息。
工作演示: https ://jsfiddle.net/usmanmunir/w5cbgLsk/
运行下面的代码片段以查看它的工作原理。
$(function() {
//Preview image function
var previewImage = function(image) {
if (image.files) {
//Check all images
var filesAmount = image.files.length;
for (i = 0; i < filesAmount; i++) {
var reader = new FileReader();
reader.onload = function(event) {
//Replace images on form upload selected image
$('#output').attr('src', event.target.result)
}
reader.readAsDataURL(image.files[i]);
}
}
};
//Select image and call imagePreview function
$('#Image').on('change', function() {
previewImage(this);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group">
<label for="Image">Image</label>
<input type="file" id="Image" name="Image" accept="image/*">
<div class="load_images">
<img src="http://mandarinazul.co/images/mandarinas.png" id="output">
</div>
</div>
推荐阅读
- python - 在不终止进程的情况下中止 Python 进程中的代码执行
- amazon-ecs - Fluentbit 从 AWS ECS 解析日志
- c# - 从 app.config 在 MVC .net core 3.1 中配置 Trace
- .net - 从 CosmosDB 连接字符串解析端点 Uri
- python - Azure 存储 Blob (v12) Python API:在获取租约时重试
- c# - 获取 System.Data.SqlClient.SqlException (0x80131904):“OfficeOpenXml”附近的语法不正确。错误信息
- c# - 如何打开具有特定编码类型的 ShareFileClient 写入流?
- java - 如何确定给定 jar 的 org 和包含的包的名称?
- android - 在两个活动之间通过 SharedPreferences 共享两个对象列表问题:除非应用退出,否则副本似乎不同
- asp.net-core - SignInWithClaimsAsync 中的声明永久到期