文链接:https://blog.csdn.net/weixin_42971933/article/details/85995869
作者:吕小胖纸
普通的文件上传只能看到它的文件名,而如果要实现选择某一张图片则可以利用html5的FileReader完成
下面是实现步骤:
html:
这里是上传图片的内容,οnchange="getFile()"为选择文件后的转换函数,后面会提及
上传图片的按钮我这里是自定义的,做法在另一篇博客里
css:
预览框我暂定为100x100的正方形框,出来后图片可能会有变形之类的,可以自定义
接下来是主要的JS部分
JS:
样式简洁,可以自己定义,比如写个+什么的
像这种:
样式就自己定义好了。
对了,在这里说一下,我目前是在职web前端开发,如果你现在正在学习前端,了解前端,渴望成为一名合格的web前端开发工程师,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,都可以随时关注并私信我:前端,我都会根据大家的问题给出针对性的建议,缺乏基础入门的视频教程也可以直接来找我,我这边有最新的web前端基础精讲视频教程, 还有我做web前端技术这段时间整理的一些学习手册,面试题,开发工具,PDF文档书籍教程,都可以直接分享给大家。
tml+js+php异步上传图片,不刷新页面,图片用的是选择了就自动上传,好处就是不用刷新页面。
前端就是 input标签,没有form表单,用form表单的稍微有点差异,大家可以去百度
我是需要服务端返回我图片存储的地址,每次只上传一张,不是php的原生上传,代码稍微有一点不一样。代码可能不规范,匆忙写的。理解理解。
方法有很多种,大家可以参考。互相交流谢谢。
HTML区:
<div class="form-group">
<label for="avatar">头像<img class="avatar" width="80px" height="80px"
src="{% static 'image/head/default.png' %}"
alt="图片未加载出"></label>
<input type="file" id="avatar" style="display: none">
</div>
JS代码区
<script>
{#替换头像位置图片方法#}
$('#avatar').change(function () {
{#jquery对象转换为DOM对象#}
var choose_file = $(this)[0].files[0];
{#创建一个阅读器对象#}
var reader = new FileReader();
{#读取choose_file的文件对象#}
reader.readAsDataURL(choose_file);
{#上面代码加载完再运行函数内代码(原因:图片未加载完下面的代码就有可能执行完了)#}
reader.onload = function () {
{# 路径的值在reader.result中#}
$('.avatar').attr("src", reader.result)
}
}
)
</script>
PS:注意务必要引入jQuery样式
#python##Python入门推荐#
*请认真填写需求信息,我们会在24小时内与您取得联系。