ajaxFileUpload 文件上傳 php html yii2

多文件:name參數必須帶[]結尾!

HTML

<input type="file" name="file_upload[]"  hidden id="file_upload" accept="image/*" multiple>

JS

			$('body').on('change','#file_upload',function () {
				if($(this).val()!==''){
					var form_data = new FormData($('#form_file_upload')[0]);
					// ajaxfileupload
					$.ajaxFileUpload({
						fileElementId:'file_upload',
						url:'/hb/caipubuzhou/upload/',
						type:'post',
						dataType:'json',
						secureuri: false,
						timeout: 3000, //超時時間:3秒
						data:{
							'_csrf':'<?=$csrf?>',
							'form_data':form_data,
						},
						success:function(msg){
							if(msg.dir_state!==false){
								if(v_buzhou.rows_buzhou[0]['src']===''){
									v_buzhou.rows_buzhou.splice(0,1);
								}
								for(i=0;i<msg['state'].length;i++){
									if(msg['state'][i]===true){
										v_buzhou.rows_buzhou.push({'title':'','src':msg['address'][i],'type':'add','pkid':'0'});
									}
								}
							}else{
								layer.alert('創建地址失敗!');
							}
							if(v_buzhou.rows_buzhou.length>=3){
								auto_height();
							}
						},
						error:function(){

						}
					});
					document.getElementById('file_upload').value='';
				}
			})

PHP

 // 創建目錄
    public function create_dir($type)
    {
        $msg=[];
        $msg['state']=false;
        // 絕對地址(項目路徑)
        $dir=$_SERVER['DOCUMENT_ROOT'];
        // 相對地址
        $dir_xiandui='';
        // 存儲地址
        switch ($type) {
            case 'hb':
                $dir_xiandui='/upload/hb/'.date('Y/').date('m/').date('d/');
                break;
            default:
                $dir_xiandui='';
                break;
        }
        //        判斷儲存路徑是否爲空
        if(!empty($dir_xiandui)){
            // 合併地址
            $dir=$dir.$dir_xiandui;
            if(!is_dir($dir)){
                mkdir($dir,'0777',true);
            }
            if(is_dir($dir)){
                $msg['state'] = true;
                $msg['path_juedui']=$dir;
                $msg['path_xiandui']=$dir_xiandui;
            }else{
                $msg['msg']='創建目錄失敗!';
            }
        }else{
            $msg['msg']='儲存地址不存在!';
        }
        return $msg;
    }

    // file_type 文件類型
    // type存儲分類
    public function upload_file($file_type=0,$type)
    {
        $msg=[];
        $msg_dir['dir'] = $this->create_dir($type);
        // 創建文件夾
        if($msg_dir['dir']['state']!==false){
            // 目錄創建ok
            $msg['dir_state']=true;
            $file_rule=[];
            for($i=0;$i<count($_FILES['file_upload']['error']);$i++){
                $file_path = $msg_dir['dir']['path_juedui'];
                // 文件路徑
                if(isset($file_path)){
                // 文件類型
                    switch ($file_type) {
                        case 'image':
                            $file_rule=['image/jpg','image/jpeg','image/gif','image/png'];
                            break;
                        case 'xls':
                            $file_rule=['application/vnd.ms-excel','application/wps-office.xls','image/png'];
                        default:
                            # code...
                            break;
                    }
                    //隨機文件名
                    $file_name_new=time().rand(100,999).'.'.str_replace('image/','',$_FILES['file_upload']['type'][$i]);
                    if(in_array($_FILES['file_upload']['type'][$i],$file_rule)){
                        //判斷文件大小,文件小於6M
                        if($_FILES['file_upload']['size'][$i]>0&&$_FILES['file_upload']['size'][$i]<(6000*1024))
                        {
                            // $item['tmp_name'] 文件上傳的臨時目錄
                            if(move_uploaded_file($_FILES['file_upload']['tmp_name'][$i],''.$file_path.$file_name_new))
                            {
        //                        文件路徑
                                $msg['address'][]=$msg_dir['dir']['path_xiandui'].$file_name_new;
        //                        文件名稱
                                $msg['biaoti'][]=$file_name_new;
                                // $msg['pkid'][]=$file_name_new;
                                $msg['state'][]=true;
                            }
                            else
                            {
                                $msg['msg'][]='文件上傳失敗!'.$file_path.$file_name_new;
                            }
                        }
                        else
                        {
                            $msg['msg'][]='文件大小不合法!';
                        }
                    }else{
                        $msg['msg'][]='文件類型不支持';
                    }
                }else{
                    $msg['msg'][]='保存路徑不存在!';
                }
            }
        }else{
            // 目錄創建失敗
            $msg['dir_msg']=$msg_dir['dir']['msg'];
            $msg['dir_state']=false;
        }
        return $msg;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章