黑马程序员技术交流社区

标题: PHP+jQuery+Ajax多图片上传 [打印本页]

作者: 武汉分校-小舞    时间: 2017-6-28 17:32
标题: PHP+jQuery+Ajax多图片上传
PHP+jQuery+Ajax多图片上传



本文稿由武汉校区就业部孙老师提供

今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。
我们在本文中用到一个Ajax表单提交插件:jqery.form.js,有高人修改了几行代码并改名为:jquery.wallform.js,直接拿来用。
HTML
我们在页面上放置一个form表单,使用post提交到后台php处理程序upload.php,注意enctype属性设置要支持文件上传。#preview用来显示上传完毕后的图片。关于css样式设置本文不加说明,请参照下载包的源码。
[hide=d365]<form id="imageform" method="post" enctype="multipart/form-data" action="upload.php">
    <div id="up_status" style="display:none"><img src="loader.gif" alt="uploading"/></div>
    <div id="up_btn" class="btn">
        <span>添加图片</span>
        <input id="photoimg" type="file" name="photoimg">
    </div>
</form>
<p>最大100KB,支持jpg,gif,png格式。</p>

<div id="preview"></div> [/hide]
jQuery
本实例基于jQuery,因此必须在页面中载入jquery库以及jquery.wallform.js。
[hide=d365]

<script type="text/javascript" src="jquery.min.js"></script>

<script type="text/javascript" src="jquery.wallform.js"></script>
[/hide]
当点击按钮“添加图片”后,弹出选择文件对话框,选择要上传的图片后,触发change事件。然后表单#imageform调用jquery.wallform.js的ajaxForm()方法,将表单数据提交给后台PHP处理,并根据返回结果处理页面元素的展示。如果上传成功,图片会一张张排列显示在页面上。关于ajaxForm()的使用可以参照本站文章:Ajax表单提交插件jqery form。
$(function(){
    $(
'#photoimg').die('click').live('change', function(){
        
var status = $("#up_status");
        
var btn = $("#up_btn");
        $(
"#imageform").ajaxForm({
            target:
'#preview',  
            beforeSubmit:
function(){
                status.show();
                btn.hide();
            
},  
            success:
function(){
                status.hide();
                btn.show();
            
},  
            error:
function(){
                status.hide();
                btn.show();
        
} }).submit();
   
});
});
PHP
upload.php处理图片上传,并将上传好的图片保存在uploads/目录,注意该目录要有写权限。首先需要检测是否为POST方式提交,然后判断图片格式、图片大小是否符合要求,然后使用move_uploaded_file()上传图片,并将图片重命名,格式为:time().rand(100,999)。

当然,实际应用中,可以与数据库以及用户中心结合,将用户上传的图片保存在数据表中,具体应用大家可以自行研究。

本文稿由武汉校区就业部孙老师提供

作者: hello_sgw    时间: 2017-7-14 19:25
一直很喜欢黑马的这个免费资源
作者: 且行且珍惜    时间: 2017-7-18 11:46
爱学习哎学习
作者: djjx5227    时间: 2017-7-27 00:28
刚要做到这个功能,还不太理解,来学习下
作者: yzwljlb    时间: 2017-7-27 07:54
看一看,学一学,顶一顶
作者: 13333706360    时间: 2017-8-11 09:55
学习学习
作者: cshaptx4869    时间: 2017-8-11 17:58
过来学习
作者: Foam    时间: 2017-8-16 12:50
正在想怎么上传图片
作者: qq19880527    时间: 2017-8-23 16:41
学习学习
作者: darry426    时间: 2017-8-23 17:00
xiangzhidao
作者: curzz    时间: 2017-8-23 20:19
谢谢分享
作者: mono88    时间: 2017-8-23 22:40
我的嘛,这么牛逼

作者: 门徒13    时间: 2017-8-24 12:33
让我看看
作者: zyx9527    时间: 2017-8-24 14:13
学习学习
作者: zyx9527    时间: 2017-8-24 14:15
?????源码在哪下载???cnm,sb,死骗子
作者: 骑着黑马的唐僧    时间: 2017-8-29 19:16
ajax是最好的语言
作者: zuo    时间: 2017-9-6 10:53
而且为其
作者: anan881213    时间: 2017-9-6 16:55
看看 学习一下!~~~
作者: yzq123    时间: 2017-9-13 22:13
谢谢谢谢
作者: 忧郁之子    时间: 2017-9-18 15:02
的确不错,如果能把所有源码打包就更好了
作者: czh188    时间: 2017-9-19 01:01
过来学习
作者: 327083434    时间: 2017-9-22 01:36
学习学习学习
作者: 小满程序员    时间: 2017-10-20 14:26
地方东港股份
作者: pudilu    时间: 2017-10-25 14:52
还是不错的
作者: 小六的六六    时间: 2017-10-30 14:00
很强势可以的
作者: comebas    时间: 2017-11-2 11:50
这个还是很实用
作者: 做个坏的程序员    时间: 2017-11-8 16:54
小小黑马
作者: xgwhsgws    时间: 2017-11-8 21:40
很有用,值得学习,感谢楼主分享
作者: shuaigirl    时间: 2017-11-9 11:54
66666666666666666666666
作者: aaaim    时间: 2017-11-15 15:22
谢谢分享
作者: simple波    时间: 2017-11-16 12:02
1117979779879
作者: qq1847252773    时间: 2017-11-20 15:04
1111111111111111111111111111111111111111111111
作者: 初音hzd    时间: 2017-11-21 14:07
大佬带带我

作者: kzeal    时间: 2017-11-24 23:23
n一直很喜欢黑马的这个免费资源
作者: 播妞    时间: 2017-11-25 03:29

作者: 小心了    时间: 2017-11-25 12:09
想学好来,我想学好php
作者: lqt1128    时间: 2017-12-3 19:40
学习学习
作者: willbe    时间: 2017-12-7 08:33
学好AJAX很重要啊
作者: 2861527131    时间: 2017-12-7 21:12
谢谢分享
作者: 稚于最初    时间: 2017-12-10 14:16
感谢老铁

作者: phpMyadmin    时间: 2017-12-27 09:09
phpMyadmin
作者: d的疯狂    时间: 2017-12-30 09:37
非常感谢楼主的分享!!!!!!!!!!!!!!!
真是不错的教程,衷心感谢!!!!!!!!!!!
作者: mvpicy    时间: 2018-1-1 09:51

学习学习
作者: 2861527131    时间: 2018-1-5 23:29
楼主,没有看到源码下载
作者: erv    时间: 2018-2-1 10:57
1111111111111111111111
作者: Dadihqz    时间: 2018-2-9 08:52
PHP+jQuery+Ajax多图片上传

作者: ace小钊    时间: 2018-2-12 21:23
过来学习一下
作者: 曹凤东    时间: 2018-2-20 20:48
看不到啊

作者: lomeixiok    时间: 2018-2-21 18:46
来学习学习
作者: 冬瓜茶    时间: 2018-2-21 21:09

一直很喜欢黑马的这个免费资源
作者: maynyan_2016    时间: 2018-3-10 18:25
谢谢分享
作者: sunheima    时间: 2018-3-12 19:55
PHP+jQuery+Ajax多图片上传 [修改
作者: 呵呵998767    时间: 2018-3-15 11:17
想学习啊
作者: 番茄炒鸡蛋    时间: 2018-3-18 08:29
学习一下!~
作者: di2238460    时间: 2018-3-27 02:29
哈哈卡罗拉卡罗拉了解
作者: di2238460    时间: 2018-3-27 02:30
不错,看看这个怎么样啊
作者: IWantToBe...    时间: 2018-3-27 20:26
学一学。。。。。
作者: cwhello    时间: 2018-3-28 17:38
做到这个功能要学多久呢?
作者: 醉无言    时间: 2018-4-21 21:26
学习学习
作者: 喧哗的城市    时间: 2018-4-26 21:51
一直很喜欢黑马的这个免费资源
作者: heima61_yt    时间: 2018-5-14 12:45
老学员报道 谢谢分享!
作者: 繁华一世简    时间: 2018-5-23 22:33
谢谢分享
作者: 番茄炒鸡蛋    时间: 2018-5-26 08:12
学习一下
作者: q565723121    时间: 2018-5-28 12:46
66666666

作者: ai512169768    时间: 2018-6-27 14:36
学习学习学习学习学习学习学习学习学习
作者: pysl    时间: 2018-7-11 14:55
学习了,谢谢!
作者: pysl    时间: 2018-7-20 22:52
学习了,谢谢
作者: pysl    时间: 2018-7-25 07:10
学习,感谢分享
作者: 武汉分校-小舞    时间: 2018-7-27 12:00
pysl 发表于 2018-7-25 07:10
学习,感谢分享

留一条就行了哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2