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 を追加する必要があります。
失敗の理由を把握し、印刷して確認してください。
この文を追加しました。js にはエラーはありません。バックグラウンド PHP の print_r($_FILES);array にデータがありません。jquery.uploadify-3.1 をどこから始めればよいかわかりません。 .min.js にはファイルが含まれています。ページ上のどれがファイル情報を取得するためのアクションをトリガーするのかわかりません。js コード部分は次のようになります。ブラウザ
この方法で、問題がどこにあるのかを判断できますさらに、パラメータに debug を追加する必要があります。:true、この項目
は追加されましたが、Firefox の使用時にエラーは報告されませんでしたが、$_FILES は空でした
$ _FILES は空でしたか?
これは、アップロードしたファイルがphpで設定したフォームサイズpost_max_sizeより大きいためです
actionuploadify
actionUploadify
post_max_size とアップロード ファイル サイズは問題ありません。ありがとうございます。
$_FILES は空ですか?