ajax上传文件 预览/七牛云AJAX上传

ajaxfileupload下载:链接: http://pan.baidu.com/s/1dDtX6Pb 

密码: qqi2



$('.upload-success').show(300).delay(3000).hide(300);  //2S后隐藏


需要用到:ajaxfileupload

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="http://3.zy62.com/ajaxfileupload.js"></script>
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1 class="page-header">ajax上传</h1>

<form id="upload" action="https://api.weixin.qq.com/cgi-bin/media/upload?access_token=mdJiyvzApDgpaBuin0V4JbhdmsGcaPDJvsrOTdL0l8185JvqvW2WIS0EIKCP9ntFXf82fWaJfEWiRdivissAKKcR6pJlM6V66RtjN29rVjA&type=image" method="post" enctype="multipart/form-data">
  <div class="form-group">
    <label for="exampleInputFile">File input</label>
    <input type="file" name="media" id="file">
    <p class="help-block">Example block-level help text here.</p>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>

<a class="btn btn-default" href="#" id="test" role="button">Link</a>
<p>
<img id="img" src=""/>
</p>
<script>
$(document).ready(function(){
	$('#test').click(function(){
		$.ajaxFileUpload({
			  url:'{:U("Index/upload")}',
			  secureuri: false,
			  fileElementId:'file',
			  dataType: 'text',//返回数据类型
			  success: function (data, status){
			      //alert(data);
				  $("#img").attr("src","http://127.0.0.1/6/0604/Uploads/2015-06-06/"+data);
			  },
              error: function (data, status, e)//服务器响应失败处理函数
              {
                  alert(e);
              }
			});
		//$('#upload').submit();
	});
});
</script>
</div>
</body>
</html>



PHP接收文件:

public function upload(){
		$upload = new \Think\Upload();// 实例化上传类
		$upload->maxSize   =     3145728 ;// 设置附件上传大小
		$upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
		$upload->rootPath  =     './Uploads/'; // 设置附件上传根目录
		$upload->savePath  =     ''; // 设置附件上传(子)目录
		// 上传文件 
		$info   =   $upload->upload();
		if(!$info) {// 上传错误提示错误信息
			//$this->error($upload->getError());
			echo 456;
		}else{// 上传成功
			echo $info['media']['savename'];
			//print_r($info);
			//$this->success('上传成功!');
		}
	}

效果预览:

001321_fgz5_2304951.png



判断文件格式和大小:

PHP

$type=$_FILES["file"]["type"];
			$size=$_FILES["file"]["size"]/1024;
			if(!$this->client->id){
				exit('{"state":"1","result":"请登录"}');
			}
			if(!$size){
				exit('{"state":"1","result":"文件不能为空"}');
			}
			if(!$_FILES["file"]["tmp_name"]){
				exit('{"state":"1","result":"文件不能为空"}');
			}
			if(($type!='image/jpeg')&&($type!='image/png')){
				exit('{"state":"1","result":"不允许上传的文件类型"}');
			}
			if($size>=256){
				exit('{"state":"2","result":"不能上传大于256K图片"}');
			}
			if($type=='image/jpeg'){$type='jpg';}
			if($type=='image/png'){$type='png';}
			$_FILES["file"]["name"]=strtolower(md5($this->client->username)).'.'.$type;//.time()
			if(move_uploaded_file($_FILES["file"]["tmp_name"],ROOTWEBDIR."1/userheadimg_files/" . $_FILES["file"]["name"])){
				$client=new Record();
				$client->where("id", "=", $this->client->id)->update("clients", array('avatar'=>$_FILES["file"]["name"]));
				exit('{"state":"3","result":"'.$_FILES["file"]["name"].'"}');
			}else{
				exit('{"state":"4","result":"上传失败"}');
			}
			//"Stored in: " . //ROOTWEBDIR."1/userheadimg_files/" .

JS:

$(document).ready(function(){
    $('#btn_upload').click(function(){
	var f=document.getElementById("file").files;
	//alert(f[0].size); 
	if(f[0].size/1024>256){
	alert('文件大小不能超过256K');
	return false;
	}
	if((f[0].type!='image/jpeg')&&(f[0].type!='image/png')){
	alert('请上传JPG,PNG格式图片');
	return false;
	}
	//alert(f[0].type); 
	//return false;
        $.ajaxFileUpload({
              url:'/client/main/avatar/',
              secureuri: false,
              fileElementId:'file',
              dataType: 'text',//返回数据类型
              success: function (data, status){
				  var data = jQuery.parseJSON(data);
				  if(data.state!=3){
				  alert(data.result);
				  return false;
				  }
				  //alert(data);
                  $(".avatar").attr("src","http://blesta.domain.com/1/userheadimg_files/"+data.result+'?time='+new Date().getTime());
				  return false;
              },
              error: function (data, status, e)//服务器响应失败处理函数
              {
                  alert(e);
				  return false;
              }
            });
			return false;
        //$('#upload').submit();
    });
});



七牛云AJAX上传

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>七牛云存储 | 上传凭证 - jsFiddle demo</title>
  <script type='text/javascript' src='//code.jquery.com/jquery-1.9.1.js'></script>
  <link rel="stylesheet" type="text/css" href="http://fiddle.jshell.net/css/result-light.css">
  <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
  <script type='text/javascript' src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
  <style type='text/css'>
.ipt{width:300px}label{width:130px;display:block}ul li{list-style:none}.ui-progressbar{position:relative}.progress-label{position:absolute;left:50%;top:4px;font-weight:700;text-shadow:1px 1px 0 #fff}#progressbar{height:30px;display:none}#dialog{display:none}
  </style>
<script type='text/javascript'>
$(document).ready(function() {
    var Qiniu_UploadUrl = "http://up.qiniu.com";
    /*var progressbar = $("#progressbar"),
        progressLabel = $(".progress-label");
    progressbar.progressbar({
        value: false,
        change: function() {
            progressLabel.text(progressbar.progressbar("value") + "%");
        },
        complete: function() {
            progressLabel.text("Complete!");
        }
    });*/
    $("#btn_upload").click(function() {
        //普通上传
        var Qiniu_upload = function(f, token, key) {
            var xhr = new XMLHttpRequest();
            xhr.open('POST', Qiniu_UploadUrl, true);
            var formData, startDate;
            formData = new FormData();
            if (key !== null && key !== undefined) formData.append('key', key);
            formData.append('token', token);
            formData.append('file', f);
            var taking;
            xhr.upload.addEventListener("progress", function(evt) {
                if (evt.lengthComputable) {
                    var nowDate = new Date().getTime();
                    taking = nowDate - startDate;
                    var x = (evt.loaded) / 1024;
                    var y = taking / 1000;
                    var uploadSpeed = (x / y);
                    var formatSpeed;
                    if (uploadSpeed > 1024) {
                        formatSpeed = (uploadSpeed / 1024).toFixed(2) + "Mb\/s";
                    } else {
                        formatSpeed = uploadSpeed.toFixed(2) + "Kb\/s";
                    }
                    //var percentComplete = Math.round(evt.loaded * 100 / evt.total);
                    //progressbar.progressbar("value", percentComplete);
                    // console && console.log(percentComplete, ",", formatSpeed);
                }
            }, false);
 
            xhr.onreadystatechange = function(response) {
                if (xhr.readyState == 4 && xhr.status == 200 && xhr.responseText != "") {
                    var blkRet = JSON.parse(xhr.responseText);
                    //console && console.log(blkRet);
                    //$("#dialog").html(xhr.responseText).dialog();
                    //alert(blkRet.key);
                    //$("#rs").html(blkRet.key);
                    $("#img").attr("src","http://7xjkan.com1.z0.glb.clouddn.com/"+blkRet.key);
                } else if (xhr.status != 200 && xhr.responseText) {
 
                }
            };
            startDate = new Date().getTime();
            $("#progressbar").show();
            xhr.send(formData);
        };
        var token = $("#token").val();
        if ($("#file")[0].files.length > 0 && token != "") {
            Qiniu_upload($("#file")[0].files[0], token, $("#key").val());
        } else {
            console && console.log("form input error");
        }
    })
})
//]]>  
</script>
 
</head>
<body>
<div class="container">
  <ul>
    <li>
        <label for="token">token:</label>
        <input id="token" name="token" class="ipt" value="bk2QllClZeNzs71SQgk-AlUIScXheFJocWqxtTZ4:H7ozOIRGpyotEjgo2UdIvaGBovw=:eyJzY29wZSI6IndzeTEwMCIsImRlYWRsaW5lIjoxNDM1ODI3MTM3fQ==">
    </li>
    <li>
        <label for="key">key:</label>
        <input id="key" name="key" class="ipt" value="">
    </li>
    <li>
        <label for="bucket">照片:</label>
        <input id="file" name="file" class="ipt" type="file" />
    </li>
    <li>
        <input id="btn_upload" type="button" value="提交">
    </li>
    <div id="progressbar"><div class="progress-label"></div></div>
</ul>
<div id="dialog" title="上传成功"></div>
 
<p id="rs"></p>
<img id="img" src="" class="img-responsive"/>
</div>
  <script>
  $(document).ready(function(){
      $('#file').change(function(){
          var key=$(this).val();
          var path1 = key.lastIndexOf("\\");
          var key = key.substring(path1+1);
          $('#key').val(key);
          //alert(key);
      });
  });
  </script>
</body>
</html>


转载于:https://my.oschina.net/rain21/blog/425565

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值