Heim > Artikel > Backend-Entwicklung > php+Uploadify在win7下安装配置好了,也可以正常运行,但在linux下无法上传
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."上传失败!"; } } }
<a href="javascript:$('#file_upload').uploadify('settings', 'formData', {'typeCode':document.getElementById('id_file').value});$('#file_upload').uploadify('upload','*')">上传</a>
<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为空?
这是因为你的上传文件大于 php 设定的表单大小 post_max_size
actionuploadify
actionuploadify
是post_max_size和上传文件大小这两个地方,其他的地方没问题,谢谢!
$_FILES为空?
这是因为你的上传文件大于 php 设定的表单大小 post_max_size