5

CI 2.1.3 を使用して、プログレス バーでファイルをアップロードしようとしています。ファイルのアップロードはすべて正しく機能していますが、このファイルの進行状況を取得するのは簡単ではありませんでした。私はすべて異なる解決策を持つたくさんのガイドを見てきましたが、ほとんどがかなり古くなっているため(2008年っぽい)、どれも機能していないようです。

これが私が探しているものです:

  • PHP/jQuery/AJAX/Javascript ソリューション (Flash は使用しないでください!)
  • クロスブラウザ(IEは問題ないので、IE8以下で動かなくても問題ありません)
  • CodeIgniter アップロード ライブラリ互換

それはそれについてです。参照用の私のコード:

PHP:

public function do_upload()
{
    // Configure and load the uploads library
    $config['upload_path']   = './uploads/';
    $config['allowed_types'] = 'mp4|mov';
    $config['encrypt_name']  = TRUE;
    $config['max_size']      = '2621440'; // 2.5 GB, in kilobytes

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

    if (!$this->upload->do_upload('userfile'))
    {
        $this->session->set_flashdata('error', $this->upload->display_errors('', ''));

        redirect('upload');
    }
    else
    {
        $this->session->set_flashdata('upload_data', $this->upload->data());

        $upload_data = $this->upload->data();
        $uploader = $this->flexi_auth->get_user_by_id()->row_array()['uacc_username'];

        $this->load->model('upload_model');
        $this->session->set_flashdata('uaid', $this->upload_model->generate_uaid($upload_data['raw_name']));
        $this->upload_model->create_upload($upload_data['file_name'], $upload_data['raw_name'], $upload_data['client_name'], $upload_data['file_size'], $upload_data['file_path'], $uploader);

        redirect('upload');
    }
}

HTML:

<div class="progress progress-striped active" id="upload_progress" style="display: none;">
                    <div class="bar" id="upload_progress_bar" style="width: 0%;"></div>
                </div>
                <?php echo form_open_multipart('upload/do_upload', array('id' => 'upload_form')); ?>
                <input type="file" name="userfile" size="20" />
                <button type="submit" name="upload">Upload</button>
                <?php echo form_close(); ?>
4

2 に答える 2

1

http://vortexdev.netii.net/article_20/Integrate_jQuery_File_Upload_with_CodeIgniter
- 2012/05/14

https://github.com/blueimp/jQuery-File-Upload/wiki/jQuery-File-Upload-6.5-with-CodeIgniter-2.1
- 5 か月前に編集

それは難しいものです。多くの解決策がありますが、多くはスタックとターゲットに依存します (たとえば、フラッシュがない場合)。ネイティブ機能を提供するPECL拡張機能と同じことを試みているの多くの例があり、昨年中にアクティブになりました。PHP のoutput controlに基づいて、HTML の進行状況を直接提供すると主張するthisもあります。ただし、ローカルで動作させることはできませんでした。

最善の策は、さまざまなものを組み合わせて機能するものを取得することです。現時点では、CI アップロード プログレス バー用の単純なプラグ アンド プレイ ソリューションはありません。

于 2013-04-11T14:09:14.463 に答える