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 相关文章推荐
PHP中实现进程间通讯
Oct 09 PHP
用PHP4访问Oracle815
Oct 09 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
PHP计数器的实现代码
Jun 08 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
php中smarty区域循环的方法
Jun 11 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
PHP中类的继承和用法实例分析
May 24 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 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
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
python生成随机验证码(中文验证码)示例
2014/04/03 Python
django站点管理详解
2017/12/12 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
Python中and和or如何使用
2020/05/28 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
高中三年学习生活的自我评价
2013/10/10 职场文书
电气个人求职信范文
2014/02/04 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
好媳妇事迹材料
2014/12/24 职场文书
创业计划书之酒店
2019/08/30 职场文书
Python基础之数据结构详解
2021/04/28 Python