无刷新上传图片,ajax 和 iframe
iframe 上传
upload.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="https://www.yhys.com/jquery/3.2.1/jquery.min.js"></script></head><body><iframe id="upload_target" name="upload_target" src="upload.php" style="width:0;heigth:0;overflow:hidden;border:0;position: absolute; left:-500px;"></iframe><img id="tag_img" src="http://www.pangdan.com/images/chunwan.gif" /><form enctype="multipart/form-data" action="upload.php" method="post" target="upload_target"> <input type="file" id="fileipt" name="userfile" class="file" value="" /> <input type="submit" name="uploadimg" value="上传" id="submit" hidden /></form><script type='text/javascript'> var lastFileName; $("#fileipt").change(function() { var fileName = $(this).val(); var pos = fileName.lastIndexOf("\\"); fileName = fileName.substr(pos+1, fileName.length); // 截取出文件名 因为会带路径 lastFileName = fileName; $("#submit").click(); }); function stopSend($url) { $("#tag_img").attr("src",$url); }</script></body></html> |
upload.php
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php/** * Created by PhpStorm. * User: chenxiaolong * Date: 7/21/17 * Time: 10:24 *///var_dump($_FILES);$file=$_FILES['userfile'];if($file['size'] != 0) { $name=rand(0,500000).dechex(rand(0,10000)).".jpg"; move_uploaded_file($file['tmp_name'],$name); if($name) { echo "<script>parent.stopSend('$name')</script>"; }} |
ajax 无刷新上传图片
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<button id="J_headimg" style="font-size: 12px;margin-left: 10px;width: 70px;height: 30px;background: #10AD5A;color: #fff;">修改头像</button><input type="file" name="pic" id="pic" hidden accept="image/*" /><input type="text" id="headimg" name="headimg" hidden><script> $("#J_headimg").click(function() { $("#pic").click(); return false; }); $("#pic").change(function() { var $that = $(this); var imgPath = $(this).val(); if (imgPath == "") { alert("请选择上传图片!"); return; } //判断上传文件的后缀名 var strExtension = imgPath.substr(imgPath.lastIndexOf('.') + 1); if (strExtension != 'jpg' && strExtension != 'gif' && strExtension != 'png' && strExtension != 'bmp' && strExtension != 'jpeg') { alert("请选择图片文件"); return; } var formData = new FormData(); formData.append('file', $that[0].files[0]);// php 用$_FILES['file']接收 console.log($that[0].files[0]); $.ajax({ type: "POST", url: "__URL__/uploadimg", data: formData, cache: false, processData: false,// 需要加这两个参数 contentType: false, success: function(data) { var obj = JSON.parse(data); if(obj.status == 0) { $("#preimg").attr("src","Public/Upload/" + obj.data); $("#headimg").val(obj.data); } else { alert(obj.data); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("上传失败,请检查网络后重试"); } }); });</script> |
对应uploadimg方法
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public function uploadimg() { $file = $_FILES['file']; $arr = array('jpg'=>'image/jpeg','png'=>'image/png','gif'=>'image/gif','bmp'=>'image/bmp'); if($ext = array_search($file['type'],$arr)) { $rand = uniqid(); $filename = "Public/Upload/avatar/{$rand}.{$ext}"; } else { exit(json_encode(array('status'=>2,'data'=>'只支持图片上传'))); } $r = move_uploaded_file($file['tmp_name'],$filename); if($r) { exit(json_encode(array('status'=>0,'data'=>"avatar/$rand.$ext"))); } else { exit(json_encode(array('status'=>1,'data'=>'上传失败'))); }} |
无刷新上传图片,ajax 和 iframe的更多相关文章
- nodejs利用ajax实现网页无刷新上传图片
nodejs利用ajax实现网页无刷新上传图片 标签(空格分隔): nodejs 通常情况下上传图片是要通过提交form表单来实现的,但是这又不可避免的产生了网页转. 利用ajax技术和FormDat ...
- Thinkphp框架 -- ajax无刷新上传图片
用Thinkphp框架做无刷新上传图片 视图层 View <!doctype html> <html lang="en"> <head> < ...
- TP3.2:实现Ajax无刷新上传图片
1.基于TP3.2+ajaxfileupload进行无刷新上传图片,本次只上传一张,多张以后搞出来再发 2.效果: 3.html代码: <html> <head> < ...
- ajaxFileUpload.js 无刷新上传图片,支持多个参数同时上传,支持 ie6-ie10
/* 131108-xxj-ajaxFileUpload.js 无刷新上传图片 jquery 插件,支持 ie6-ie10 依赖:jquery-1.6.1.min.js 主方法:ajaxFileUpl ...
- php无刷新上传图片和文件
核心思想:通过Html的iframe标签属性操作顶级窗口,再用php动态无刷新上传图片文件. 示例如下: demo |------uploads #存放上传的文件 |------index.php | ...
- 使用SWFUpload无刷新上传图片
使用SWFUpload组件无刷新上传图片 在做项目时,需要用到一个图片的无刷新上传,之前听说过SWFUpload,于是想要通过SWFUpload来进行图片的无刷新上传,由于我的项目属于是ASP.NET ...
- 浅谈页面无刷新技术ajax
现在一般网站都是用ajax来实现页面无刷新操作的. 什么是无刷新:ajax可以实现页面与后台的数据交互,用户完全感觉不出页面有任何的刷新,这就是AJAX的无刷新. ajax方法实现: 可以对ajax进 ...
- ajax无刷新上传图片
页面: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> & ...
- 无刷新删除 Ajax,JQuery
1.数据库用上面的,增加一个 DeleteById 的SQL方法 delete from T_Posts where Id = @Original_Id 2.设置处理页面 delete.ashx pu ...
随机推荐
- 未来科技城 x 奇点云打造「企业数据大脑」,助力1.3万家企业服务
“当前,政府数字化和数字政府建设已成为一种趋势.一种必然,并且有了一条水到渠成式的实现路径.” 上升为国家战略的数字中国建设加速了”智慧政务“的生动实践,杭州未来科技城的「企业数据大脑」就是一个典型. ...
- PostgreSQL 安装之 CentOS 7 x64 RPM 安装
PostgresQL 安装环境 一.CentOS 7 安装 1. 环境说明 CentOS7 PosgreSQL 11.2 2. 在线安装 到目前为止(2019-08-10),CentOS7 默认携带了 ...
- Qt 线程池QThreadPool类、QRunnable类
QThreadPool类 用来管理 QThreads.此类中的所有函数都是线程安全的. 主要属性: 1.activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThrea ...
- jQuery插件开发小结
jQuery插件开发规范 1. 使用闭包 (function($) { // Code goes here })(jQuery); 这是来自jQuery官方的插件开发规范要求,使用这种编写方式有什么好 ...
- VDMA搭建视频通路总结
全局观查,对整个工程的搭建的关键是要保证PL部分搭建成功,PS部分搭建成功,而且两者配合的很好. 我理解的PL部分涉及到模块的组合以及模块或者IP之间的逻辑的整理,PL部分困扰我比较久的是自动生成的w ...
- 重复测量的方差分析|Mauchly's Test of Sphericity|
生物统计学-重复测量的方差分析 之前的方差分析应用条件要求组之间是独立的,即某种因素下相同时段测量的结果数据,但4月与5月数据是有关系的,所以必须考虑某种因素下不同时段测量的结果数据,即使用重复测量的 ...
- ClassNotFoundException: org.apache.commons.logging.Log
参考: https://bbs.csdn.net/topics/392090371 omcat无法启动,报如下错误: 严重: A child container failed during start ...
- jquery mobile AJAX特性的陷阱
简单情况是 MVC 重定向,URL不变 试了N种方式,跳来跳去,无解,服务端跳,写JS跳,生成跳转中间页跳.失败 后来一看,明明已经跳到新页了,样式什么还是原页的,有点火大了. 出去溜一圈,喝杯水,和 ...
- 红杉资本的Dropbox上市,国内哪些产品会跟着受益?
每一个估值达到10亿美元以上的互联网.科技独角兽企业,都将上市当做"终极荣光".但事实上,上市只是这些独角兽企业开启全新时代的开端而已.很多气势汹汹且看似前景一片光明的独角兽 ...
- <NOIP2005提高T2>过河の思路
emm又一道dp dp真有趣(你的良心呢?!!! Description 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一 ...