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 相关文章推荐
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
作为PHP程序员应该了解MongoDB的五件事
Jun 03 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 PHP
通过php删除xml文档内容的方法
Jan 23 PHP
Mac OS下配置PHP+MySql环境
Feb 25 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
Apr 20 PHP
joomla组件开发入门教程
May 04 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
简单了解Python生成器是什么
2019/07/02 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
python3字符串输出常见面试题总结
2020/12/01 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
公司培训心得体会
2014/01/03 职场文书
药店主任岗位责任制
2014/02/10 职场文书
专家推荐信模板
2014/05/09 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers