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

本文实例讲述了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程序设计有所帮助。

时间: 2024-10-31 18:28:36

php+html5使用FormData对象提交表单及上传图片的方法_php技巧的相关文章

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

 这篇文章主要介绍了php+html5使用FormData对象提交表单及上传图片的方法,实例分析了FormData对象的使用技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了php+html5使用FormData对象提交表单及上传图片的方法.分享给大家供大家参考.具体分析如下: FormData 对象,可以把form中所有表单元素的name与value组成一个queryString,提交到后台.在使用Ajax提交时,使用FormData对象可以减少拼接queryString的工

Chrome Form多次提交表单问题的解决方法_javascript技巧

今天用chrome提交一个表单时,发现一个奇怪的问题: 复制代码 代码如下: //提交表单 document.frmOrder.action = 'http://www.abc.com/d.aspx'; document.frmOrder.method = 'POST'; document.frmOrder.target = '_blank'; document.frmOrder.submit(); 第一次提交可以,第二次提交就没有任何响应了.需要重新加载页面后才可以提交,而这个问题在Firef

php获取从html表单传递数组的方法_php技巧

本文实例讲述了php获取从html表单传递数组的方法.分享给大家供大家参考.具体如下: 将表单的各个元素的name都设置成同一个数组对象既可以以数组的方式传递表单值 html页面如下: <form method="post" action="arrayformdata.php"> <label>Tags</label> <input type="text" name="tags[]"/

js和jq使用submit方法无法提交表单的快速解决方法_javascript技巧

昨天,在做一个表单异步提交内容的时候,遇到很奇怪的问题,submit()方法无法进行提交,每次提交都是把 当前给刷新了,网络抓包发现,每次都是 get方式去获取 当前页面,完全没有post 请求,想着以前 遇上这样的问题 都是因为 表单中 有 name 或者 id 这些命名跟submit 有冲突,但是检查了几次,始终没有发现 名字冲突,所以这个可能性被排除. 平常自己做触发按钮,基本不用a 标签,但是昨天不知道什么 问题,竟然用了 a 而且还给了 href 为空,由于这个a 的class 有多个

js 回车提交表单两种实现方法_javascript技巧

1.JavaScript 方法: 复制代码 代码如下: [javascript] <script> document.onkeydown=function(event){ e = event ? event :(window.event ? window.event : null); if(e.keyCode==13){ //执行的方法 alert('回车检测到了'); } } </script> <script> document.onkeydown=function

joomla内置的表单验证功能使用方法_php技巧

以下说一下使用方法: 在要使用表单功能的页面的最上面输入如下代码 JHTML::_('behavior.formvalidation'); 然后把如下脚本加入页面上 复制代码 代码如下: <script type="text/javascript"> function formValidate(f) { if (document.formvalidator.isValid(f)) { f.check.value='<?php echo JUtility::getTok

Mvc提交表单的四种方法全程详解_javascript技巧

一,MVC HtmlHelper方法 1. Html.BeginForm(actionName,controllerName,method,htmlAttributes){} 2. BeginRouteForm 方法 (HtmlHelper, String, Object, FormMethod) 二,传统Form表单Aciton属性提交 三,Jquery+Ajax 提交表单 四,MVC Controller控制器和表单参数传递 MVC HtmlHelper方法 一,Html.BeginForm

js校验表单后提交表单的三种方法

本篇文章主要是对js校验表单后提交表单的三种方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 第一种:  代码如下: <script type="text/javascript">          function check(form) {             if(form.userId.value=='') {                 alert("请输入用户帐号!");                 form.us

js校验表单后提交表单的三种方法总结

作者: 字体:[增加 减小] 类型:转载 时间:2014-02-28 本篇文章主要是对js校验表单后提交表单的三种方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 第一种: 复制代码 代码如下: <script type="text/javascript">          function check(form) {           if(form.userId.value=='') {                 alert("请输入