日期:2014-05-16 浏览次数:20444 次
在用PHP上传文件时我们只能用$_FILES数组,如果我们只是单一的用JS方式取其ID,如<input id='img' type='file'>..document.getElementById('img').value或者jquery形式的$("#img")都是不能正真实际上传的。
可是功能上又要要求实现所谓的“异步上传”,怎么办呢?只能借助于第三方的组件,或者自己写一个。但如果是考虑开发时间,那以用第三方的,这里有一个不错的jQuery的Ajax文件上传的组件,是“ajaxfileupload.js",其组件下载地址在网上可以找到,下载完毕里面有一个php的应用demo,很容易看懂的。
过程: 
首先引入JQUERY的主文件: 
ajaxfileuploads.js 下载地址
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="ajaxfileupload.js"></script>
再写一个传值文件 
<script type="text/javascript"> 
function ajaxFileUpload(){ 
$.ajaxFileUpload 
( 
{ 
[url='/cms/manage/newsajax/newsadd']url:'/cms/manage/newsajax/newsadd'[/url], 
secureuri:false, 
fileElementId:'img', 
dataType: 'text', 
success: function (data){ 
alert(data); 
} 
} 
) 
return false; 
} 
</script> 
这样客户端就完成了。 
再服务器端时,为了简便检测是否真正的传值过来了,你可以打印$_FILES. 
var_dump($_FILES); 
这样你又看到你熟悉的数组了: 
$array=array( 
'name'=>'lamp.jpg', 
'type'=>'image/pjpeg', 
'tmp_name'=>'c:\windows\temp\phpFA.tmp', 
'error'=>0, 
'size'=>3127
)
下载地址