chainjoy

chainjoy

这家伙有点懒,还没写个性签名!

  • 财富值10
  • 威望值0
  • 总积分20

个人信息

  • 不要updated字段,created_at用时间戳
    `[

    			'class' => TimestampBehavior::className(),
    			'updatedAtAttribute' => false,
    			'value' => time(),
    		], `
    
  • UploadedFile::getInstanceByName('file');
    By Name !!!
    我也被困扰了好久,最终解决了,如果使用了$model->save(); 还要记得
    $this->file->saveAs($this->getFilePath($this->getFileName()), false); 这句里面的false,不然报错,找不到此文件。

    以下是完整代码

    model:

    ['file', 'file', 'skipOnEmpty' => true, 'mimeTypes' => 'image/*, video/*, audio/*, application/zip, application/pdf', 'wrongMimeType' =>'禁止的文件类型',  'tooBig' => '文件太大,仅允许{formattedLimit}']
            ];
    public function upload(){
    		$this->file  = UploadedFile::getInstanceByName('file');
    		if($this->validate()){
    			$this->file->saveAs($this->getFilePath($this->getFileName()), false);
    			return true;
    		}
    		return false;
    	}
        
        controller:
         public function actionCreate() {
    		
    		$model = new Media();
    		if ( isset( $_FILES["file"] ) && !empty( $_FILES["file"]["name"] ) ) {
    			Yii::$app->response->format = 'json';
    			if($model->upload()){
    					$model->src = $model->getSrc();
    					if($model->save()){
    						return ['url' => $model->getUrl($model->getFileName())];
    					}
    			} 
    			return $model->errors; 
    		}  
    		return $this->renderPartial('create', ['model' => $model]);    
        }
        
        JQ: 
         $('html, .upload-area').on('dragenter dragover drop', function (e) { 
    	e.stopPropagation();  
    	e.preventDefault(); 
    	$('.upload-message').text('拖放到这里');
    });
    
     $('.modal').on('click','.upload-area',function(){
    	$('#file').click();
    });
    
    $('.modal').on('drop', '.upload-area',function (e) {
        e.stopPropagation();
        e.preventDefault();
        var files = e.originalEvent.dataTransfer.files;
        var formData = new FormData();
    
    	$.each(files, function(i, file) {
    		formData.append('file', files[i]);
    		uploadData(formData);
    	});  
    });
    
    $('.modal').on('change','#file',function(){
    	var formData = new FormData();
    	$.each($('#file')[0].files, function(i, file) {
    		formData.append('file', $('#file')[0].files[i]);
    		uploadData(formData);
    	});
    });
    
    function uploadData(formData){
        $.ajax({
            url: '/media/create',
            type: 'post',
            data: formData,
            contentType: false,
            processData: false,
            dataType: 'json',
    		beforeSend:function(){ $('.upload-message').text("上传中...");},
            success: function(response){
    			if(response.url){
    				$('.upload-message').html(response.url);
    				$.pjax.reload({container: '#pjax'});
    			}else{
    				$('.upload-message').html(response.file);
    			} 
            }
        });
    }
    
    
    HTML:
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <b class="upload-title">上传文件</b>
    </div>
    <div class="modal-body upload-file">
    <input type="file" name="file" id="file" multiple>
    <div class="upload-area">
    <div class="upload-message">拖文件到这儿<br/><br/>点击选择 </div>	
    </div>
    </div>
    
试用期 等级规则
20/50
资料完整度
30/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

0