uploadify使用心得

我使用的是当前的最新版的3.2版,下载下来之后运行,根据提示很快出现前台效果,但问题出来了,前台显示已经上传成功,但后台总是没有文件,也就是并没有真正意义上的上传成功,感觉肯定是负责上传的后台文件uploadify.php出错了,但ZEND这时候也不给力,调试不进去后台PHP了,真想骂人。

后来在网上看到一个老兄的JS调试方法,结合自己的后台处理经验,对uploadify.php进行了重写,这才完全实现了,所要的功能。

下面就把解决方法记录一下,以便有相同问题的朋友解决:

一,首先,我们说下如何调试

打开jquery.uploadify.js,找到如下代码:


如图所示,添加”alert(data)”;

 

二、重新运行程序,你会发现,这里有个什么鸟timestamp的东东,在post的时候根本就没有POST过来,也就是说根本就没有这个变量,下面我对它进行了更改,代码如下,我就不讲了,没几行,也有提示,大家可以研究一下

<?php

header('Content-Type: text/html; charset=UTF-8');
ini_set('date.timezone','Asia/Shanghai');//时区

//指定目标文件夹
$targetFolder = 'upload/uploadFile/'.'day_'.date('ymd').'/';

if (!empty($_FILES)) {
	$tempFile = $_FILES['Filedata']['tmp_name'];
	if (!file_exists($targetFolder)){//如果指定文件夹不存在,则创建文件夹
		mkdir($targetFolder , 0777);
	}
	$fileParts = pathinfo($_FILES['Filedata']['name']);
	
	//根据日期加随机数生成新名字
	///$targetFile =$targetFolder.$_FILES['Filedata']['name'];//这句是保存原来的文件名	
	$newFilename=$targetFolder.date("YmdHis").mt_rand(1000,9999).'.'.$fileParts['extension'];
	//转移所上传的文件
	if(move_uploaded_file($_FILES['Filedata']['tmp_name'],$newFilename))
	{
		//echo $newFilename;
		echo '1';
	}
	//如果移动失败
	else{
		echo 'Invalid file type.';
	}
	//$_FILES['upfile']['name']与$_FILES['Filedata']['name']是同一个意思
	//同样$_FILES['upfile']['tmp_name']与$_FILES['Filedata']['tmp_name']也是同一个意思
	
}
?>

注:对于上面代码,可能有些朋友会问,不是在JS中可以指定folder:参数来指定存放的目标文件夹么,为什么这里你还要定义$targetFolder这个变量来指定目标文件夹呢,我原来也很天真的认为指定folder参数是有用的,后来发现根本没啥用,原来的程序,没有指定目标文件夹,而是用

    $targetPath= $_SERVER['DOCUMENT_ROOT'] . $targetFolder;

这句来指定目标文件夹的,而$targetFolder的值并不是POST传送过来的,而是通过$targetFolder = '/uploads';这句直接赋的值,所以在JS里指定folder参数根本没啥用。后来我仔细研究了下jquery.uploadify.js的代码,贴个图给大家


上面这是这版的uploadify的所有的参数,上面根本没有folder参数!!!!!而uploadify的网站上面是有folder参数的,只能说明一个问题:开发者在这版开发的时候忘加这个参数了!!!,所以我们也只有指定目标地址了。

我给大家写个DEMO,当然包括上面的后台处理文件,大家可以下载,研究一下!谢谢

 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值