2017-07-25 9 views
0

Webサービスを通じて1つの画像をアップロードしようとしています。コードCodeingiter:Webサービス経由の画像アップロード

public function upload() { 
     $config['upload_path']   = './uploads/'; 
     $config['allowed_types'] = 'gif|jpg|png|mp4|jpeg'; 
     $config['max_size']    = 100; 
     $config['max_width']   = 1024; 
     $config['max_height']   = 768; 
     $this->load->library('upload', $config); 
     $this->upload->initialize($config); 
     $this->data['data']= $_FILES; 
     echo json_encode($this->data); die; 

     if (! $this->upload->do_upload('userfile')) 
     { 
       $error = array('error' => $this->upload->display_errors()); 
       $this->data['data']= $error ; 
       echo json_encode($this->data['data']); 
       die; 
     } 
     else 
     { 
       $data = array('upload_data' => $this->upload->data()); 
             $this->data['data']= 'done' ; 

       echo json_encode($this->data['data']); 
       die; 
     } 
} 

は、次のとおり私json_encode($_FILES)これは私がエラーの配列を印刷するとき、これは私が

error = "<p>The filetype you are attempting to upload is not allowed.</p>"; 

得るものです

data =  { 
     userfile =   { 
      error = 0; 
      name = pen; 
      size = 38238; 
      "tmp_name" = "/tmp/phpEsEQNK"; 
      type = jpeg; 
     }; 
    }; 
モバイル

の応答である場合には、印刷の両方の応答を確認してください私はこれをどのように修正できるのか教えてください。

+0

チェック以下のチケット:https://stackoverflow.com/questions/9815208/codeigniter-the-filetype-you-are-attempting-to-upload-is -not-allowed –

答えて

0

お試しください。これは、その後、行番号199、

$this->_file_mime_type($_FILES[$field]); 

変更し、その行

$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die(); 

、してみてくださいを見つける システム/ライブラリ/ Upload.php

$config["allowed_types"] = "image/jpeg|image/gif|image/jpg|image/png|video/mp4"; 
+0

その背後にある論理は何ですか? –

0

移動を助けるかもしれませんここでMIMEタイプをチェックしてください。

あなたはCIのバージョン2.1.0を使用している場合さて、その後、アップロードライブラリにバグがあり、

移動先:/system/libraries/Upload.php(行番号1044)

検索:

$this->file_type = @mime_content_type($file['tmp_name']); 
return; 

変更するには:

$this->file_type = @mime_content_type($file['tmp_name']); 
if (strlen($this->file_type) > 0) return; 

検索:(行番号1058)

@exec('file --brief --mime-type ' . escapeshellarg($file['tmp_path']), $output, $return_code); 

変更するには:

@exec('file --brief --mime-type ' . escapeshellarg($file['tmp_name']), $output, $return_code); 
関連する問題