ajax上传图片并显示,Ajax实现图片上传并预览
效果见尾部。
最近在使用ThinkPHP5开发项目中客户有一个需求是在图片上传时附带预览功能。虽然现在有很多的插件能实现,但是还是觉得自己写比较好。我们知道,图片上传需要一个input:file表单
当我们点击表单的时候提示选择需要上传的图片。但是此需求我们分析一下,可以在点击图片的时候使用JS实现预览功能,并且楼主也是这样做的。代码如下:
function getFileUrl(sourceId) {
var url;
url = window.URL.createObjectURL(document.getElementById(sourceId).files.item(0));
return url;
}
function preImg(sourceId,targetId) {
var url = getFileUrl(sourceId);
var imgPre = document.getElementById(targetId);
imgPre.src = url;
}
效果如下:
但是这样的话会涉及很多兼容问题。所以就想到了Ajax,在图片上传时,使用Ajax技术。将图片上传到服务器,再由服务器返回给我们图片的上传地址,然后添加到img标签中去。过程虽然麻烦了点,但是亲测不会有兼容问题。
需要发送Ajax请求的话,当然input:file表单是不能实现我们的需求的,因此,我们需要给表单关联一个单击事件去帮我们进行Ajax请求并选择图片
头像
当我们点击上传图片这个button按钮时触发input:file选择图片实现Ajax上传
function sc(){
var data = new FormData($('#form1')[0]);
$.ajax({
url: "{:url('User/uppic')}",type: 'POST',data: data,dataType: 'JSON',cache: false,processData: false,contentType: false
}).done(function(ret){
if(ret['isSuccess']){
var result = '';
var result1 = '';
// $("#show").attr('value',+ ret['f'] +);
result += '';
result1 += '';
$('#result').html(result);
$('#show').html(result1);
layer.msg('上传成功');
}else{
layer.msg('上传失败');
}
});
return false;
}
这里我们采用FormData对面进行表单提交,然后服务器端接收
public function uppic()
{
$file = request()->file('f');
$info = $file->move(ROOT_PATH . 'public/uploads/avatar');
$a=$info->getSaveName();
$imgp= str_replace("\\","/",$a);
$imgpath='uploads/avatar/'.$imgp;
$banner_img= $imgpath;
$response = array();
if($info){
$response['isSuccess'] = true;
$response['f'] = $imgpath;
}else{
$response['isSuccess'] = false;
}
echo json_encode($response);
}这里会返回图片上传的url路径:$response['f] = $imgpath;现在我们要做的就是将这个url写进前台HTML部分进行一个显示
$('#show').html(result1);
即可进行上传并预览啦。最终效果图如下
总结
以上是编程之家为你收集整理的Ajax实现图片上传并预览全部内容,希望文章能够帮你解决Ajax实现图片上传并预览所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
ajax上传图片并显示,Ajax实现图片上传并预览相关推荐
- html ajax 图片上传,Ajax实现图片上传并预览功能
先给大家展示下效果图,大家感觉不错,请参考实现代码. 最近在使用ThinkPHP5开发项目中客户有一个需求是在图片上传时附带预览功能.虽然现在有很多的插件能实现,但是还是觉得自己写比较好.我们知道,图 ...
- html ie8上传图片,图片上传本地预览兼容ie8
工作中遇到的,总结下来了,图片上传本地预览限制图片最大为2M 图片上传本地预览 #preview1{width:260px;height:190px;border:1px solid #000;ove ...
- layui上传图片列表展示_ThinkPHP5+Layui实现图片上传加预览功能
html代码 上传封面 js代码 var uploadInst = upload.render({ elem:'#cover' ,url:'addCourse' ,accept:'file' // 允 ...
- XX健康:预约管理-套餐管理图片上传与预览Redis实现定时清理垃圾图片
1. 新增套餐 1.1 需求分析 套餐其实就是检查组的集合,例如有一个套餐为"入职体检套餐",这个体检套餐可以包括多个检查组:一般检查.血常规.尿常规.肝功三项等.所以在添加套餐时 ...
- MUI学习笔记之图片上传和预览
MUI学习笔记之图片上传和预览 源代码是从博客园下载 我一边学习,一边注释,力求理解 <head> <meta charset="UTF-8"> <m ...
- uni-app知识点整理(5)- 网络请求、数据缓存、图片上传和预览
目录 一.网络请求 1.1 发送get请求 二.数据缓存 2.1 uni.setStorage(OBJECT) 2.2 uni.setStorageSync(KEY,DATA) 2.3 uni.get ...
- DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)
1.控件功能 列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例 2.1 ASPxImage http:// ...
- JS兼容各个浏览器的本地图片上传即时预览效果
JS兼容各个浏览器的本地图片上传即时预览效果 很早以前 在工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简 ...
- alert()的功能_前端实现简单的图片上传小图预览功能
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
最新文章
- 必须掌握的10大Python库
- 单个神经元不可靠!这项新研究推翻以往认知,感知的最大限制在于解码过程...
- OpenCV中VideoWriter输出视频文件为空或6KB解决方法(java)
- Promise对象的创建与使用
- 二项分布 , 多项分布, 以及与之对应的beta分布和狄利克雷分布
- hibernate之CRUD操作
- Centos/Linux桌面偏移
- thinkphp5 图片压缩旋转_有非常多的图片,该怎么制作PPT?
- 管理感悟:当好主管的关键
- RS485转HART协议转换模块 MODBUS转HART转换器
- 机器学习教程 之 随机森林: 算法及其特征选择原理
- MDM数据分析功能说明
- Metro 风格页面设计
- 2021金昌市一中高考成绩查询,2021届甘肃省金昌市一中高三下学期高考一模考试数学(理)试卷参考答案.docx...
- ATP 系列无线测温集中采集触摸屏
- C#增加SVN版本管控方法
- 【渝粤题库】陕西师范大学163207 旅游企业人力资源管理 作业(专升本)
- 求职简历应该怎么填写受HR喜爱?HR喜欢邮箱格式应该怎么写?
- Android系统分析—OTA升级
- 弘辽科技:优化直通车关键词,质量分降低点击单价。