html5的FormData对象和input的file属性以及window.URL.createObjectURL( ) 方法(转载)

/**
FormData ==>表单数据
能自动把表单数据拼接打包
当ajax发送数据时,发送打包的数据;
还可以使用FormData对象的append(key,value)添加数据
FormData还可以自动帮忙打包文传送件数据,后台通过$_FILES数组接收

说明FormData对象既可以打包发送表单的数据,也可以手动append数据

注意,input Dom对象有一个files属性  十一哥文件数组
**/
<!doctype html>

<html>
<head>
<meta charset=utf-8>

<head>
<title>FromData</title>
</head>

<script>

window.onload=function(){

    function _ajax(data,url,method){

        var xml=new XMLHttpRequest();
        xml.open(method,url,true);

        xml.onreadystatechange=function(){

            if(this.readyState==4){

                alert(this.responseText);
            }
        }

        xml.send(data);

    }
    function send_form(){

        var myform=document.getElementById(‘myform‘);
        //这行代码FormData对象帮忙把数据打包了;
        var _formData=new FormData(myform);

        var myImg=document.getElementById(‘myImg‘).files[0];
        alert(myImg);
        _formData.append(‘sex‘,‘man‘);
        _formData.append(‘like‘,‘basketball‘);
        //直接把_formData对象传给XMLHttpRequest对象的send()方法
        _ajax(_formData,‘./accept.php‘,‘post‘)

    }

    var btn=document.getElementById(‘btn‘);
    btn.onclick=function(){

        send_form();
    }

}
</script>

<body>

<form id=‘myform‘>
    姓名:<input type=‘text‘ name=‘name‘/><br/>
    城市:<input type=‘text‘ name=‘city‘/><br/>
    密码:<input type=‘password‘ name=‘password‘/><br/>
    <input type=‘file‘ name=‘myImg‘ id=‘myImg‘/><br/>
    <input type=‘button‘ value=‘确认‘ id=‘btn‘/>
</form>

</body>

</html>

=============================
//后台接收到的数据
Array
(
    [name] => lpprince
    [city] => qingyuan
    [password] => 123
    [sex] => man
    [like] => basketball
)
Array
(
    [myImg1] => Array
        (
            [name] => xiao1.jpg
            [type] => image/jpeg
            [tmp_name] => /Applications/XAMPP/xamppfiles/temp/php0AjbuQ
            [error] => 0
            [size] => 13039
        )

    [myImg2] => Array
        (
            [name] => xiao.c
            [type] => application/octet-stream
            [tmp_name] => /Applications/XAMPP/xamppfiles/temp/phpMprmQq
            [error] => 0
            [size] => 49
        )

)

input的file属性以及window.URL.createObjectURL(  ) 方法

<!doctype html>

<html>
<head>
<meta charset=utf-8>

<head>
<title>FromData</title>
</head>

<script>

window.onload=function(){

    var btn=document.getElementById(‘btn‘);

    var file_msg=document.getElementById(‘file_msg‘);

    var input=document.getElementById(‘myImg‘)

    input.onchange=function(){

        /*
        input 有files属性,该属性是一个数组,保存了图片的信息
        name=>L.png
        lastModifiedDate=>Mon Nov 11 2013 13:38:31 GMT+0800 (CST)
        size=>54546
        type=>image/png
        webkitSlice=>function webkitSlice() { [native code] }
        */
        var myImg=document.getElementById(‘myImg‘).files[0];

        var pic=document.createElement(‘img‘);

        //把二进制对象读成浏览器能够识别的对象;
        //Safari竟然不支持URL.createObjectURL()方法,Chrome支持
        pic.src=window.URL.createObjectURL(myImg);
        pic.style.width=‘100px‘;
        pic.style.height=‘100px‘;

        file_msg.innerHTML="文件的大小是"+parseInt(myImg.size)+‘M‘+‘<br/>‘+‘图片的名字是:‘+myImg.name;
        document.body.appendChild(pic);

    }

}
</script>

<style>

#file_msg{
    width:150px;
    height:150px;
    border:1px solid green;
}
</style>
<body>

<form id=‘myform‘>
    <div id=‘file_msg‘></div>
    <input type=‘file‘ name=‘myImg1‘ id=‘myImg‘/><br/>

    <input type=‘button‘ value=‘确认‘ id=‘btn‘/>
</form>

</body>

</html>
时间: 2024-12-29 07:19:19

html5的FormData对象和input的file属性以及window.URL.createObjectURL( ) 方法(转载)的相关文章

关于利用input的file属性在页面添加图片的问题

在页面添加图片涉及到兼容的问题怎么解决兼容问题呢?请看下面分析: 在IE浏览器上面我们能直接通过获取其input的value值来获取其图片的路径. 在火狐和谷歌需要用createObjectURL((input的元素).files.item(0))来获取其路径: 现在请看代码: css设置样式部分(可以自己设置好看的样式): *{ margin: 0; padding:0; } #img{ width:50px; } .box{ width: 100px; margin:20px auto; }

input type file 获得用户选择的一般方法

<script type="text/javascript"> function ShowExcelFile() { var tempName = $("#selectOriginFile_CertificationTemplateSelect").val(); if (tempName != null && tempName != "") { window.open("/home/ReadExcelFile

利用html5的FormData对象实现多图上传

有两种实现方式: 1.可以使用form的方式实现. html代码如下: <body> <form enctype="multipart/form-data" id="inputForm1" modelAttribute="bankAdminist" action="" method="post" class="form-horizontal"> <div c

使用原生input的file属性上传图片和element的多路径上传图片

//使用原生的input属性//作品上传 <input class="uploading__input" name="file" @change="readImg($event,'work')" type="file" id="file" value="" accept="image/*" capture="camera" > //封面

修改input type=file 标签默认样式的简单方法

<html><head><title></title></head><body><form id="uploadForm"  action="" method="post" enctype="multipart/form-data"><input type="file" name="uploadFile&qu

php 下 html5 XHR2 + FormData + File API 上传文件

FormData的作用: FormData对象可以帮助我们自动的打包表单数据,通过XMLHttpRequest的send()方法来提交表单.当然FormData也可以动态的append数据.FormData的最大优点就是我们可以异步上传一个二进制文件. 例1如下: <!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>

有关图片上传的相关知识input type=file,HTML5的 input:file上传类型控制

遇到项目,要求做一个影像系统,对于前端开发需要了解file的相关属性,以及如何开发.工欲善其事,必先利器嘛.度娘一阵子搜索,找资料.这年头,需要的是你解决问题的能力啊! 参考应用:https://www.cnblogs.com/sunliyuan/p/5737928.html http://blog.okbase.net/jquery2000/archive/1296.html(解释的也很清楚) http://blog.csdn.net/qingyjl/article/details/52003

Web 前沿——HTML5 Form Data 对象的使用

您可能感兴趣的相关文章 10大流行 Metro UI Bootstrap 主题和模板 精选12款优秀 jQuery Ajax 分页插件和教程 10大流行的 Metro UI 风格 Bootstrap 主题 8款效果精美的 jQuery 加载动画和进度条插件 推荐35款精致的 CSS3 和 HTML5 网页模板 创建一个FormData对象 你可以先创建一个空的 FormData 对象,然后使用 append() 方法向该对象里添加字段,如下: 1 2 3 4 5 6 7 8 9 10 11 12

Web 前沿——HTML5 Form Data 对象的使用(转)

XMLHttpRequest Level 2 添加了一个新的接口——FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 XMLHttpRequest 的 send() 方法来异步的提交表单.与普通的 Ajax 相比,使用 FormData 的最大优点就是我们可以异步上传二进制文件. 您可能感兴趣的相关文章 10大流行 Metro UI Bootstrap 主题和模板 精选12款优秀 jQuery Ajax 分页插件