无刷新上传图片,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 ...
随机推荐
- OpenCVSharp介绍
OpenCvSharp 是一个OpenCV的.Net wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的OpenCV,有详细的使用样例供参考.该库采用LGPL发行,对商业 ...
- windows安装fdfs_client-py-master.zip 出现 error: Microsoft Visual C++ 14.0 is required.
背景:学习django+fdfs+nginx时碰见的问题,笔记本电脑的虚拟机ubuntu实在卡到怀疑人生,所以django装在windows,ubuntu只开启fdfs+nginx服务.于是就有在wi ...
- nonparametric method|One-Mean t-Interval Procedure|
8.4 Confidence Intervals for One Population Mean When σ Is Unknown 原先是 standardized version of x bar ...
- Zookeeper开源客户端框架Curator的使用
CuratorFramework Curator框架提供了一套高级的API, 简化了ZooKeeper的操作. 话不多说,看代码 package com.donews.data.util import ...
- 成组vs成对|H1是受保护的|U检验
生物统计与实验设计 样本均值的分布推导 概率密度曲线上每点x取值概率是不相等的.标准化是转化为无量纲的表面误差,该分布是误差分布,置信区间是可接受该误差是随机误差的误差区间.上面的部分是该估计参数与平 ...
- 分布式Web服务器架构(通俗易通)
最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网 ...
- 0-1背包问题-DP
中文理解: 0-1背包问题:有一个贼在偷窃一家商店时,发现有n件物品,第i件物品价值vi元,重wi磅,此处vi与wi都是整数.他希望带走的东西越值钱越好,但他的背包中至多只能装下W磅的东西,W为一整数 ...
- 两步解决maven plugins 插件下载慢 !下载报红的问题!
两步解决maven plugins 插件下载慢 !下载报红的问题! 1.找到你解压的maven安装路径下的conf 编辑settings 2.添加如下 使用阿里的 <mirror> ...
- VMware 虚拟机重启后获取不到ip的问题
问题: VMware 虚拟机重启后获取不到ip,如图: 解决: 打开windows服务管理器,将VMware相关服务启动. 验证: 重启网络服务后,成功获取ip.
- Hexo+Git一个小时快速搭建个人博客
搭建本地环境:Hexo框架 Hexo为何物 Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用Markdown解析文章,并瞬间利用靓丽的主题生成静态网页.其中,Markdown是一个用于将普通 ...