ajax上传文件进度条

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script type="text/javascript">
window.onload=function()
{
    var fm=document.getElementsByTagName("form")[0];

    fm.onsubmit=function()
    {
    //var username=document.getElementById("username").value;
    // var password=document.getElementById("password").value;
    // var email=document.getElementById("email").value;
    //var fmdata="username="+username+"&password="+password+"&email="+email;

    var fmdata=new FormData(fm);

        var xhr=new XMLHttpRequest();
        xhr.onreadystatechange=function()
        {
            if(xhr.readyState==4)
            {
                eval("var obj="+xhr.responseText);

               document.getElementById("scjg").innerHTML=obj.jg;
               if(obj.name!=null){
               document.getElementById("sctp").innerHTML=‘<img src=\"‘+obj.name+‘\" width="89" height="70"  />‘;}
            }

        } 

        //设置监听事件ajax.upload.onprogress
        xhr.upload.onprogress=function(evt){
            //感知附件上传情况,利用事件感知
            //console.log(evt);
            var loaded=evt.loaded;
            var total=evt.total;
            var per=Math.floor((loaded/total)*100)+"%";
            document.getElementById("jdn").style.width=per;
            document.getElementById("jdn").innerHTML=per;
            }
        xhr.open("POST","/1.php");
         //使用formData不用设置表头
         //xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
          xhr.send(fmdata);
        return false;
    }

}
</script>
<style>
#jdw{
    margin:10px;
    height:20px;
    border:solid 1px #666;
    width:200px;}
#jdn{height:20px;
background-color:#F00;
width:0px;
}
 </style>
</head>

<body>
<div id="scjg"></div>
<div id="sctp"></div>
ajax+FormData+javascript 实现无刷新表单注册
<form method="post">
姓名<input name="username" type="text" id="username">
<br>
密码<input name="password" type="password" id="password">
<br>
邮箱<input name="email" type="text" id="email">
<br>
<div id="jdw"><div id="jdn"></div></div>
文件<input name="nfile" type="file" id="nfile">
<br>
<input type="submit" value="提交"></form>
</body>
</html>
<?php
//print_r($_POST);
//print_r($_FILES);
$ary=array();
if($_FILES["nfile"]["error"]>0){
$ary[‘jg‘]=‘上传附件有问题,有可能没有附件‘;
echo json_encode($ary);
exit();
}

$path="./upfile/";

$name=$_FILES["nfile"][‘name‘];
//附件上传
if(move_uploaded_file($_FILES["nfile"][‘tmp_name‘],iconv("UTF-8","GBK",$path.$name)))
{
$ary[‘jg‘]="上传成功";
$ary[‘name‘]=$path.$name;
}else{
$ary[‘jg‘]="上传失败";
}
echo json_encode($ary);

?>
时间: 2024-10-11 13:17:12

ajax上传文件进度条的相关文章

Ajax上传文件进度条显示

要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 html5提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后用这个百分比控制div框的显示,就可以 实现上传的进度条效果 前端页面 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ajax上传文件进度条显示

asp.net大文件上传与上传文件进度条问题

利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一些资料: 基于AJAX的文件上传显示进度条实现 思路是通过ajax后台检查目前上传的文件怎么样了,然后更新前台的进度条.

oss上传文件进度条展示

用户上传文件至oss的时候需要增加一个进度条展示,查看了官方文档及网上几篇博客后整理一下相关思路,在此记录一下自己的成长. 在此以上传视频为例,自定义监听监听文件上传进度,通过将字节数和总字节数之间比例写入session中返回给前端进行进度展示. private static String endpoint = "http://oss-cn-beijing.aliyuncs.com";     private static String accessKeyId = "<

php上传文件进度条

ps:本文转自脚本之家 Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP 5.4以前,实现这样的进度条并不容易,主要有三种方法: 1.使用Flash, Java, ActiveX 2.使用PHP的APC扩展 3.使用HTML5的File API 第一种方法依赖第三方的浏览器插件,通用性不足,且易带来安全隐患.不过由于Flash的使用比较广泛,因此还是有很多网站使用Flash作为解决

PHP异步上传文件到七牛(包含上传文件进度条)

<?php  require_once 'inc.php'; require_once 'vendor/autoload.php'; // 引入鉴权类 use Qiniu\Auth; // 引入上传类 use Qiniu\Storage\UploadManager; // 需要填写你的 Access Key 和 Secret Key $accessKey = ''; $secretKey = ''; // 构建鉴权对象 $auth = new Auth($accessKey, $secretKe

html5异步上传图片显示上传文件进度条

<html> <head> </head> <body> <p> emo_album_id:<input type="text" name="emo_album_id" id="emo_album_id" value='1'> </p> <p> name:<input type="text" name="title&

atitit. 文件上传带进度条 atiUP 设计 java c# php

atitit. 文件上传带进度条 atiUP 设计 java c# php 1. 设计要求 1 2. 原理and 架构 1 3. ui 2 4. spring mvc 2 5. springMVC.xml 3 6. struts extand url 3 7. behide code 3 8. 简化设计 3 1. 设计要求 带进度条 完成提示动画效果.. 2. 原理and 架构 如果需要显示进度条,实时显示文件上传进度 需要使用Ajaxj技术..up到个在的iframe黑头.. 工作原理 其实际

atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传,避免一次使用内存使用过大的 2 2. Uuid还是原来文件名称:: 2 3. 监听器频繁地被调用 2 4. 结合wz easyui 2 4. 选型 2 5. Uploadify::yash js+flash 3 6. commons-fileupload:: 3 7. COS这个工具O'Reilly公司 3 8. 大的文件上传组件总结 3 5. 林吧实现ui Ajax+jq

Struts2文件上传带进度条,虽然不是很完美

好久没有写东西,最近在做个项目,要用到文件h 传的,以前虽然也做上传,但是总觉得不好用 ,现在和队友合作做了一个带进度条的上传,觉得还行~~和大家分享一下. 首先说一下大概是这样实现的,在我们平时的上传表单里面,除了文件上传之外,也许还有其他的信息需要填写的,这样问题就来了:点击上传按钮之后,这个表单都封装并提交上去了,在上传完成后整个页面就跳转了.而且也不利于我们验证用户输入.很多人这样做的,把这2个操作分开,当然这样也行... 我们这样做:一个普通页面(可以用于填写所有信息的),一个文件上传