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 杂谈《重构-改善既有代码的设计》之五 简化函数调用
May 07 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
php指定函数参数默认值示例代码
Dec 04 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
python itchat实现微信自动回复的示例代码
2017/08/14 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
python 检测图片是否有马赛克
2020/12/01 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
毕业生机械建模求职信
2013/10/14 职场文书
施工材料员岗位职责
2014/02/12 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
党员个人党性分析材料
2014/12/18 职场文书
武当山导游词
2015/02/03 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
MySQL七种JOIN类型小结
2021/10/24 MySQL