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排序之二维数组的按照字母排序实现代码
Aug 13 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
Jul 07 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
php实现解析xml并生成sql语句的方法
Feb 03 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中$_FILES的使用以及注意事项
2013/07/05 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
php中文验证码实现方法
2015/06/18 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
Python的装饰器用法学习笔记
2016/06/24 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
对python字典过滤条件的实例详解
2019/01/22 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
高考考python编程是真的吗
2020/07/20 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
个人求职简历的自我评价范文
2013/10/09 职场文书
魅力教师事迹材料
2014/01/10 职场文书
在校实习生求职信
2014/06/18 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android