0

1 つのフォームから複数のファイルをアップロードしようとしていますが、何らかの理由で「アップロード パスが有効ではないようです」というメッセージが表示されます。権限を確認しましたが、それらは正しいので、これが画像自体に問題があるかどうかはわかりません..これらは、画像を作成するために使用する関数です

<input type="file" name="images[]" multiple id="img"></input>

function upload_image(){

    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['max_size'] = 2*1024;
    $config['max_width']  = '1024';
    $config['max_height']  = '1024';
    $config['remove_spaces'] = TRUE;

    $this->load->library('upload', $config);

    if (!$this->upload->do_upload('images'))
    {
        $error = array('error' => $this->upload->display_errors());
        return $error;
    }   
    else
    {
        for($i = 0, $t = count($_FILES['images']); $i < $t; $i++) {

            $id = $this->files->create_thumb($i);

        }
    }
}

 function create_thumb($i){

    $file = $this->upload->data();
    $files = $file['file_name'];
    $fields = array('files' => $files[$i]);

    print_r($fields);
    exit;

    for ($i = 0; $i < count($files); $i++) {

    $config['image_library'] = 'gd2';
    $config['source_image'] = 'files/images/'.$files[$i];
    $config['new_image']    = 'files/images/thumbs/'.$files[$i];
    $config['thumb_marker'] = '';
    $config['create_thumb'] = TRUE;
    $config['maintain_ratio'] = TRUE;
    $config['width']     = 120;
    $config['height']   = 120;

    $this->load->library('image_lib'); 
    $this->image_lib->initialize($config);
    $this->image_lib->resize();
    $this->image_lib->clear();

    }

}
4

1 に答える 1

1

設定を に移動しますconfig/upload.php。別の解決策として、次のコード行を使用して、ライブラリをロードした後に構成を初期化できます。

$this->upload->initialize($config);

ドキュメントから:

上記の方法を使用して環境設定を設定したくない場合は、代わりにそれらを構成ファイルに入れることができます。upload.php という新しいファイルを作成し、そのファイルに $config 配列を追加するだけです。次に、ファイルを config/upload.php に保存すると、自動的に使用されます。設定を構成ファイルに保存する場合は、 $this->upload->initialize 関数を使用する必要はありません。

ディレクトリが PHP からアクセス可能かどうかを確認するには、次を使用できますis_dir()

var_dump(is_dir('/path/to/upload/folder/')); 

お役に立てれば!

于 2013-07-11T20:14:15.407 に答える