2013-03-12 6 views
1

내 PHP 파일에서 과거 isset ($ _ FILES [ 'formFile'])을 가져올 수 없다. 항상 false를 반환한다. Ext js 4.1을 사용하고 있습니다. 제 목표는 이러한 이미지를 BLOB에 저장하는 것입니다.php로 이미지 파일 보내기

에 extjs 번호 :

var fi = new Ext.FormPanel({    
     fileUpload: true, 
     width: 400, 
     frame: false,    
     autoHeight: true,    
     labelWidth: 40, 
     border: false,    
     margins: '10 0 0 10', 
     defaults: { 
      anchor: '95%', 
      allowBlank: false, 
      msgTarget: 'side', 
      border: false 
     }, 
     items: [{ 
      xtype: 'filefield',     
      emptyText: 'Select an image', 
      fieldLabel: 'Image', 
      id: 'formFile', 
      buttonCfg: { 
       text: '', 
       iconCls: 'upload-icon' 
      }, 
      border: false 
     }], 
     buttons: [{ 
      text: 'Upload', 
      handler: function(){ 
       var form = this.up('form').getForm();      
       if(form.isValid()){ 
        form.submit({ 
         url: 'php/picture-upload.php', 
         waitMsg: 'Uploading your image...', 
         success: function(fi, o){         
          alert('succes'); 
         } 
        }); 
       } 
      } 
     }] 
    }); 

PHP :

if (!isset($_FILES['formFile'])) { 
echo '<p>Please select a file</p>'; 
echo '{"success": false}'; 
} else { 
try { 
    upload(); 
    echo '<p>Thank you for submitting</p>'; 
} catch (Exception $e) { 
    echo $e->getMessage(); 
    echo 'Sorry, could not upload file'; 
} 
} 

print_r의 출력 ($ _ FILES);

Array 
(
[formFile-inputEl] => Array 
    (
     [name] => clicla.jpg 
     [type] => image/jpeg 
     [tmp_name] => /Applications/MAMP/tmp/php/phpnUxgV3 
     [error] => 0 
     [size] => 6772 
    ) 
+0

$ _FILES에 대해서만 isset을 사용하지 마십시오. 실패한 업로드에 대해서도 설정됩니다. 절대 [[ 'error']'매개 변수도 확인해야합니다. 실패의 경우 0이 아닙니다. –

+0

감사합니다. – user2161575

답변

4

isset 출력에 따라 formFile-inputEl을 확인해야합니다.

if (!isset($_FILES['formFile-inputEl'])) { 
} 
+0

고마워 이것이 효과가 있었고, 나는 그것을 놓쳤다는 것을 믿을 수 없다. – user2161575

+0

Mkaatman의 대답이 정확합니다. 하지만 다음과 같은 파일이 있는지 확인하는 것이 어떨까요 :'if (isset ($ _ FILES))'? –