php+html5使用FormData对象提交表单及上传图片的方法


Posted in PHP onFebruary 11, 2015

本文实例讲述了php+html5使用FormData对象提交表单及上传图片的方法。分享给大家供大家参考。具体分析如下:

FormData 对象,可以把form中所有表单元素的name与value组成一个queryString,提交到后台。在使用Ajax提交时,使用FormData对象可以减少拼接queryString的工作量。

使用FormData对象

1.创建一个FormData空对象,然后使用append方法添加key/value

var formdata = new FormData();  

formdata.append('name','fdipzone');  

formdata.append('gender','male');

2.取得form对象,作为参数传入到FormData对象

<form name="form1" id="form1">  

<input type="text" name="name" value="fdipzone">  

<input type="text" name="gender" value="male">  

</form>

var form = document.getElementById('form1');  

var formdata = new FormData(form);

使用FormData提交表单及上传文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  

<html>  

 <head>  

  <meta http-equiv="content-type" content="text/html; charset=utf-8">  

  <title> FormData Demo </title>  

  <script src="/js/jquery-1.11.0.min.js"></script>  

  <script type="text/javascript">  

  <!--  

    function fsubmit(){  

        var data = new FormData($('#form1')[0]);  

        $.ajax({  

            url: 'server.php',  

            type: 'POST',  

            data: data,  

            dataType: 'JSON',  

            cache: false,  

            processData: false,  

            contentType: false  

        }).done(function(ret){  

            if(ret['isSuccess']){  

                var result = '';  

                result += 'name=' + ret['name'] + '<br>';  

                result += 'gender=' + ret['gender'] + '<br>';  

                result += '<img src="' + ret['photo']  + '" width="100">';  

                $('#result').html(result);  

            }else{  

                alert('提交失??);  

            }  

        });  

        return false;  

    }  

  -->  

  </script>  

 </head>  

 <body>  

    <form name="form1" id="form1">  

        <p>name:<input type="text" name="name" ></p>  

        <p>gender:<input type="radio" name="gender" value="1">male <input type="radio" name="gender" value="2">female</p>  

        <p>photo:<input type="file" name="photo" id="photo"></p>  

        <p><input type="button" name="b1" value="submit" onclick="fsubmit()"></p>  

    </form>  

    <div id="result"></div>  

 </body>  

</html>

server.php如下:

<?php  

$name = isset($_POST['name'])? $_POST['name'] : '';  

$gender = isset($_POST['gender'])? $_POST['gender'] : '';  

$filename = time().substr($_FILES['photo']['name'], strrpos($_FILES['photo']['name'],'.'));  

$response = array();  

if(move_uploaded_file($_FILES['photo']['tmp_name'], $filename)){  

    $response['isSuccess'] = true;  

    $response['name'] = $name;  

    $response['gender'] = $gender;  

    $response['photo'] = $filename;  

}else{  

    $response['isSuccess'] = false;  

}  

echo json_encode($response);  

?>

运行效果如下图所示:

php+html5使用FormData对象提交表单及上传图片的方法

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 PHP
array_multisort实现PHP多维数组排序示例讲解
Jan 04 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
php ci框架验证码实例分析
Jun 26 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
php从csv文件读取数据并输出到网页的方法
Mar 14 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
php判断并删除空目录及空子目录的方法
Feb 11 #PHP
php获取YouTube视频信息的方法
Feb 11 #PHP
php实现图片局部打马赛克的方法
Feb 11 #PHP
php实现获取文件mime类型的方法
Feb 11 #PHP
php强制更新图片缓存的方法
Feb 11 #PHP
Laravel中使用自己编写类库的3种方法
Feb 10 #PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 #PHP
You might like
重置版宣传动画
2020/04/09 魔兽争霸
PHP判断网络文件是否存在的方法
2015/03/12 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
jQuery Ajax文件上传(php)
2009/06/16 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
Python解决八皇后问题示例
2018/04/22 Python
多个应用共存的Django配置方法
2018/05/30 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
Python 转换文本编码实现解析
2019/08/27 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
浅谈Python 函数式编程
2020/06/20 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
小学毕业感言300字
2014/02/19 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
师德师风个人整改措施
2014/10/27 职场文书
2015年副班长工作总结
2015/05/15 职场文书
公司食堂管理制度
2015/08/05 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android