PHP + jQuery Ajax文件上传实例。因为看到一些朋友询问如何实现PHP环境下的网页上传功能,自己这几天刚用了jQuery_upload_multiple上传插件,所以在这里把用法给大家说一下。
要实现基于这个插件的上传功能,其实挺简单,需要jquery就行了,另外还有一个上传文件时的PHP程序,费话不多说,先看下面的HTML,也就是带有上传表单,让用户选择上传文件的页面:
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Easy Ajax FormData Upload Multiple Images</title> <script type="text/javascript"" width=100% src="/ajaxjs/jquery-1.6.2.min.js"></script><!--此处可引用你实际路径的jquery插件--> </head> <body> <style> #feedback{width:1200px;margin:0 auto;} #feedback img{float:left;width:300px;height:300px;} #ZjmainstaySignaturePicture,#addpicContainer{float:left;width: 100%;} #addpicContainer{margin-left:5px;} #ZjmainstaySignaturePicture img{width: 535px;} #addpicContainer img{float: left;} .loading{display:none;background:url("http://f7-preview.awardspace.com/zjmainstay.co.cc/jQueryExample/jquery_upload_image/files/ui-anim_basic_16x16.gif") no-repeat scroll 0 0 transparent;float: left;padding:8px;margin:18px 0 0 18px;} </style> <div id="addpicContainer"> <!-- 利用multiple="multiple"属性实现添加多图功能 --> <!-- position: absolute;left: 10px;top: 5px;只针对本用例将input隐至图片底下。--> <!-- height:0;width:0;z-index: -1;是为了隐藏input,因为Chrome下不能使用display:none,否则无法添加文件 --> <!-- onclick="getElementById('inputfile').click()" 点击图片时则点击添加文件按钮 --> <img onclick="getElementById('inputfile').click()" style="cursor:pointer;border: 1px solid #AABBCC;" title="点击添加图片" alt="点击添加图片"" width=100% src="http://f7-preview.awardspace.com/zjmainstay.co.cc/jQueryExample/jquery_upload_image/files/addfile.jpg"> <input type="file" multiple="multiple" id="inputfile" style="height:0;width:0;z-index: -1; position: absolute;left: 10px;top: 5px;"/> <span class="loading"></span> </div> <div id="feedback"></div><!-- 响应返回数据容器 --> <script type="text/javascript"> $(document).ready(function(){ //响应文件添加成功事件 $("#inputfile").change(function(){ //创建FormData对象 var data = new FormData(); //为FormData对象添加数据 $.each($('#inputfile')[0].files, function(i, file) { data.append('upload_file'+i, file); }); $(".loading").show(); //显示加载图片 //发送数据 $.ajax({ url:'submit_form_process.php', type:'POST', data:data, cache: false, contentType: false, //不可缺参数 processData: false, //不可缺参数 success:function(data){ data = $(data).html(); //第一个feedback数据直接append,其他的用before第1个( .eq(0).before() )放至最前面。 //data.replace(/</g,'<').replace(/>/g,'>') 转换html标签,否则图片无法显示。 if($("#feedback").children('img').length == 0) $("#feedback").append(data.replace(/</g,'<').replace(/>/g,'>')); else $("#feedback").children('img').eq(0).before(data.replace(/</g,'<').replace(/>/g,'>')); $(".loading").hide(); //加载成功移除加载图片 }, error:function(){ alert('上传出错'); $(".loading").hide(); //加载失败移除加载图片 } }); }); }); </script> </body> </html> |
接下来是上传图片的PHP文件代码:文件名:submit_form_process.php
代码如下 | 复制代码 |
<?php |
php自动识别编码,若里面有中文的话,将其转换为UTF-8就最好了,因为中文在Gbk编辑情况情况下,有可能会乱码,这个和客户端和服务端编码都有关系,为了避免乱码,我们可以使用下面的函数将其自动转换为UTF8国际标准编码:
代码如下 | 复制代码 |
<?php |
补充:文件编码转换
代码如下 | 复制代码 |
$temstr=file_get_contents($path); |
例子
代码如下 | 复制代码 |
<?php |
自己用PHP写了个爬虫,基本功能已经实现
linux 环境下运行#php spider.php http://www.111cn.net
下面为测试过程图
2.未对页面内js操作后的结果进行处理
代码如下 | 复制代码 |
<?php #加载页面 #获取页面url链接 #相对路径转绝对路径 #删除其他站点url } } #删除相同URL } } $current_url=$argv[1]; do{ while ($current_url = fgets($fp_gets,1024));//不断获得url ?> |
代码如下 | 复制代码 |
调用方法: 代码如下: watermark.php private $image; function img($img='',$txt='',$ttf='',$size=12,$jiaodu=0){ private function imgyesno(){ $this->img_info =getimagesize($this->image); //检测图片类型 $this->img_text(); private function img_text(){ imagealphablending($this->img_im,true); //设定颜色 unset($ttf_im); $txt_y =$this->img_height-$h; $this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color, $this->img_ttf,$this->img_text); @unlink($this->image);//删除图片 } //显示图片 //释放内存 } $addwk = new image_fu(); ?> |
然后在控制器中调用即可:实现方法
代码如下 | 复制代码 |
//重新设置session(防止新传头像无法显示) |
视图中的调用方法
代码如下 | 复制代码 |
|
下面再来补充一下avatar.class.php了
代码如下 | 复制代码 |
<?php } // 用于访问临时图片文件的 url // 第二步:上传分割后的三个图片数据流 // 保存为图片文件 $success = 1; $fp = @fopen($middleavatarfile, 'wb'); // 验证图片文件的正确性 |