文件异步上传方式(二)

为了浏览器兼容,js目前需要借助flash的力量实现文件异步上传。swfupload是用使用最广泛的文件上传flash。

文件目录:

/test.html   上传页面,表单所在页面

/test.php    处理上传的controller

/swfupload/swfupload.js     此文件夹中放swfupload相关资源

/swfupload/handlers.js       

/swfupload/swfupload.swf

/upfiles/                            上传文件的存放目录

 

test.html

<!DOCTYPE html>
<html>
<head>
<title>异步上传文件demo</title>
<!-- 导入相关资源 -->
<script type="text/javascript" src="swfupload/swfupload.js"></script>
<script type="text/javascript" src="swfupload/handlers.js"></script>
<script type="text/javascript">
		var swfu;

		window.onload = function() {
			var settings = {
				flash_url : "swfupload/swfupload.swf",	//上传flash位置
				upload_url: "test.php",					//接受上传的服务端脚本
				file_size_limit : "100 MB",				//上传文件大小限制
				file_post_name : "upfile",				//服务端接受文件名,相当于input name
				file_types : "*.*",						//上传文件类型
				file_types_description : "All Files",	//上传文件类型描述
				file_upload_limit : 100,				//上传文件数限制
				file_queue_limit : 0,
				custom_settings : {
					cancelButtonId : "btnCancel"
				},
				debug: false,

				// Button settings
				//button_image_url: "about:blank",		//可以为上传按钮设背景图
				button_width: "100",					//上传按钮宽
				button_height: "30",					//上传按钮高
				button_placeholder_id: "spanButtonPlaceHolder",	//上传按钮ID
				button_text: '<span class="theFont">上传文件</span>',	//按钮文本和样式
				button_text_style: ".theFont { font-size: 14; text-align:center;}",
				
				swfupload_preload_handler : preLoad,
				swfupload_load_failed_handler : loadFailed,
				file_queued_handler : fileQueued,
				file_queue_error_handler : fileQueueError,
				file_dialog_complete_handler : fileDialogComplete,
				upload_start_handler : uploadStart,
				upload_progress_handler : uploadProgress,
				upload_error_handler : uploadErrorCo,	//以下三个函数自定义,出错,成功,完成后做什么,其它的不用管
				upload_success_handler : uploadSuccessCo,
				upload_complete_handler : uploadCompleteCo
			};

			swfu = new SWFUpload(settings);
	     };
		 function uploadErrorCo(data){
			alert("上传失败");
		 }
		 function uploadSuccessCo(data){
			document.getElementById("uploadedFile").innerHTML = data.name;
		 }
		 function uploadCompleteCo(data){
		 }
	</script>
</head>
<body>
<div id="content">
	<form id="form1" action="test.php" method="post" enctype="multipart/form-data">
		<span id="spanButtonPlaceHolder"></span>
		<span style="font-size: 14px; vertical-align:top; display:inline-block; width:100px; height:30px; text-align:center;" id="uploadedFile"></span>
		<!-- 取消 -->
		<button style="display:none;" id="btnCancel">取消</button>
	</form>
</div>
</body>
</html>

test.php

<?php
	var_dump($_FILES);
	if(isset($_FILES['upfile']) && $_FILES['upfile']['error']>0){
		echo '上传出错';
	}else{
		move_uploaded_file($_FILES["upfile"]["tmp_name"],"upfiles/".$_FILES["upfile"]["name"]);
	}
?>

如此看来,swfupload.swf并不是根据php的返回结果确定是否已上传成功。或者是我不清楚如果判断。

用swfupload上传能做到"比较"炫,可以一次上传多个文件,可以显示进度,可以取消等

另,swfupload资源下载点这里

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值