首页 >后端开发 >php教程 >php+Uploadify在win7下安装配置好了,也可以正常运行,但在linux下无法上传

php+Uploadify在win7下安装配置好了,也可以正常运行,但在linux下无法上传

WBOY
WBOY原创
2016-06-23 13:53:52918浏览

PHP这里我用的是YII框架,应该没什么影响

/*	 Uploadify 后台处理方法	 */	public function actionuploadify(){					//设置上传目录		$path = "./uplode/video/";              //这里$_FILES为空		if (!empty($_FILES)) {							//得到上传的临时文件流			$tempFile = $_FILES['Filedata']['tmp_name'];							//允许的文件后缀			$fileTypes = array('avi','rmvb','mpg','wav');							//得到文件原名			$fileName = iconv("UTF-8","GB2312",$_FILES["Filedata"]["name"]);			$fileParts = pathinfo($_FILES['Filedata']['name']);							//接受动态传值			$files=$_POST['typeCode'];							//最后保存服务器地址			if(!is_dir($path))			mkdir($path);										//判断singerInfo文件是否存在且不为空 			$this->getSingFile();							if (move_uploaded_file($tempFile, $path.$fileName)){				$myfile = explode(".",$fileName);								$sql = $this->getfile($myfile[0],1);				if ($sql){										//songandSinger文档插入					$songSingerFile = "./uplode/image/songSinger.txt";					$this->getSongFile($myfile[0],$songSingerFile,"dSongAndSinger","kSingerID");										//songandType文档插入					$songTypeFile = "./uplode/image/songType.txt";					$this->getSongFile($myfile[0],$songTypeFile,"dSongAndType","kSongTypeID");										//songandStyle文档插入					$songStyleFile = "./uplode/image/songStyle.txt";					$this->getSongFile($myfile[0],$songStyleFile,"dSongAndStyle","kSongStyleID");					echo $fileName."文件上传成功,数据上传成功!";										}else{					echo $fileName."文件上传成功,数据上传失败!";				}				//			}else{				echo $fileName."上传失败!";			}						}	}

下面是html代码,上传a标签
<a href="javascript:$('#file_upload').uploadify('settings', 'formData', {'typeCode':document.getElementById('id_file').value});$('#file_upload').uploadify('upload','*')">上传</a>

处理上传的js代码
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/jquery-1.7.2.min.js"></script><script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/jquery.uploadify-3.1.min.js"></script><link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/uploadify.css"/><script type="text/javascript">var img_id_upload=new Array();//初始化数组,存储已经上传的图片名var i=0;//初始化数组下标$(function() {    $('#file_upload').uploadify({    	'auto'     : false,//关闭自动上传     	'removeTimeout' : 600,//文件队列上传完成1秒后删除        'swf'      : '<?php echo Yii::app()->request->baseUrl; ?>/js/uploadify.swf',        'uploader' : 'uploadify',//uploadify.php        'method'   : 'post',//方法,服务端可以用$_POST数组获取数据		'buttonText' : '选择文件',//设置按钮文本        'multi'    : true,//允许同时上传多张图片        'uploadLimit' : 10,//一次最多只允许上传10张图片        'fileTypeDesc' : 'Video Files',//只允许上传图像        'fileTypeExts' : '*.rmvb; *.mpg; *.wav',//限制允许上传的图片后缀        'fileSizeLimit' : '2GB',//限制上传的图片不得超过200KB         'onUploadSuccess' : function(file, data, response) {//每次成功上传后执行的回调函数,从服务端返回数据到前端               img_id_upload[i]=data;               i++;			   alert(data);			   			  //  window.location.reload();        },        'onQueueComplete' : function(queueData) {        	$("#result").html('');            //上传队列全部完成后执行的回调函数           // if(img_id_upload.length>0)           // alert('成功上传的文件有:'+encodeURIComponent(img_id_upload));        }          // Put your options here    });});</script>


回复讨论(解决方案)

要确定文件路径是否有上传权限

文件路径有上传权限,我反复看了的

js 代码部分要用浏览器中看到的
这样才能判定问题所在

另外,参数中要加上 debug:true, 这一项

catch下失败原因,打印出来看看。

刚刚加了这句话,js没有报错,后台PHP中print_r($_FILES);array没有任何数据,不知道从哪里查起,其中发现jquery.uploadify-3.1.min.js这个里面是获取文件信息并且传到后台的,不知道页面上是哪个去触发上传动作获取文件信息

js 代码部分要用浏览器中看到的
这样才能判定问题所在

另外,参数中要加上 debug:true, 这一项

 加了但是用火狐看没有报错,只是$_FILES为空

$_FILES为空?
这是因为你的上传文件大于 php 设定的表单大小 post_max_size

actionuploadify

方法名
actionuploadify

我记得是要大些的。

是post_max_size和上传文件大小这两个地方,其他的地方没问题,谢谢!

$_FILES为空?
这是因为你的上传文件大于 php 设定的表单大小 post_max_size

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn