效果见尾部。

最近在使用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实现图片上传并预览相关推荐

  1. html ajax 图片上传,Ajax实现图片上传并预览功能

    先给大家展示下效果图,大家感觉不错,请参考实现代码. 最近在使用ThinkPHP5开发项目中客户有一个需求是在图片上传时附带预览功能.虽然现在有很多的插件能实现,但是还是觉得自己写比较好.我们知道,图 ...

  2. html ie8上传图片,图片上传本地预览兼容ie8

    工作中遇到的,总结下来了,图片上传本地预览限制图片最大为2M 图片上传本地预览 #preview1{width:260px;height:190px;border:1px solid #000;ove ...

  3. layui上传图片列表展示_ThinkPHP5+Layui实现图片上传加预览功能

    html代码 上传封面 js代码 var uploadInst = upload.render({ elem:'#cover' ,url:'addCourse' ,accept:'file' // 允 ...

  4. XX健康:预约管理-套餐管理图片上传与预览Redis实现定时清理垃圾图片

    1. 新增套餐 1.1 需求分析 套餐其实就是检查组的集合,例如有一个套餐为"入职体检套餐",这个体检套餐可以包括多个检查组:一般检查.血常规.尿常规.肝功三项等.所以在添加套餐时 ...

  5. MUI学习笔记之图片上传和预览

    MUI学习笔记之图片上传和预览 源代码是从博客园下载 我一边学习,一边注释,力求理解 <head> <meta charset="UTF-8"> <m ...

  6. uni-app知识点整理(5)- 网络请求、数据缓存、图片上传和预览

    目录 一.网络请求 1.1 发送get请求 二.数据缓存 2.1 uni.setStorage(OBJECT) 2.2 uni.setStorageSync(KEY,DATA) 2.3 uni.get ...

  7. DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)

    1.控件功能      列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例       2.1 ASPxImage                 http:// ...

  8. JS兼容各个浏览器的本地图片上传即时预览效果

    JS兼容各个浏览器的本地图片上传即时预览效果 很早以前 在工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简 ...

  9. alert()的功能_前端实现简单的图片上传小图预览功能

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

最新文章

  1. 必须掌握的10大Python库
  2. 单个神经元不可靠!这项新研究推翻以往认知,感知的最大限制在于解码过程...
  3. OpenCV中VideoWriter输出视频文件为空或6KB解决方法(java)
  4. Promise对象的创建与使用
  5. 二项分布 , 多项分布, 以及与之对应的beta分布和狄利克雷分布
  6. hibernate之CRUD操作
  7. Centos/Linux桌面偏移
  8. thinkphp5 图片压缩旋转_有非常多的图片,该怎么制作PPT?
  9. 管理感悟:当好主管的关键
  10. RS485转HART协议转换模块 MODBUS转HART转换器
  11. 机器学习教程 之 随机森林: 算法及其特征选择原理
  12. MDM数据分析功能说明
  13. Metro 风格页面设计
  14. 2021金昌市一中高考成绩查询,2021届甘肃省金昌市一中高三下学期高考一模考试数学(理)试卷参考答案.docx...
  15. ATP 系列无线测温集中采集触摸屏
  16. C#增加SVN版本管控方法
  17. 【渝粤题库】陕西师范大学163207 旅游企业人力资源管理 作业(专升本)
  18. 求职简历应该怎么填写受HR喜爱?HR喜欢邮箱格式应该怎么写?
  19. Android系统分析—OTA升级
  20. 弘辽科技:优化直通车关键词,质量分降低点击单价。

热门文章

  1. nginx 实现Web应用程序的负载均衡
  2. C语言课后习题(45)
  3. SQL极致优化案例:利用索引特性进行max/min优化
  4. 20万DBA在关注的11个问题
  5. 解析MySQL基础架构及一条SQL语句的执行流程和流转
  6. 一文了解MySQL的Buffer Pool
  7. 带你了解家居智能的心脏:物联网关
  8. 在C++中,你真的会用new吗?
  9. 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察
  10. 数据不够,怎么训练数据集?别怕,有TA