1

codeigniter を実行している imagehost スタイルの Web サイトがあり、ファイルのアップロード中に表示する APC を使用してプログレス バーを実装しようとしています。

現在、進行状況ビュー ページにアクセスするか、ajax を介してアクセスすると、単に が返されbool(false)ます。

APCがまったく機能しているかどうかを確認するために、そのビュー内でテストapc_storeしてフェッチしましたが、その方法は機能しますが、私のアップロードフォームの方法はAPCでは機能しないようです。

私の進行状況ビュー (domain.com/progress/KEY) http://pastebin.com/m2qF1BEw

progress()のコントローラー:

function progress() {
    $this->load->model('Site_model');

    $data['PROGRESS_KEY']= $this->input->post('progress_key');
    $this->load->view('progress', $data);
}

アップロードページビューに設定されているキー:

$up_id = md5(uniqid(rand()));

アップロード ページ ビュー内のフォーム:

<form action="http://domain.com/site" method="post" accept-charset="utf-8" enctype="multipart/form-data">

    <input type="hidden" name="APC_UPLOAD_PROGRESS" value="a1105b41e90ed6cdaa7bdef008da40ee" id="progress_key"  />

    <input type="file" name="userfile[]" value="" multiple="multiple" id="file" accept="image/*,application/pdf"  />

    <input type="submit" name="upload" id="upload" />

</form>

<iframe id="upload_frame" class="nodisplay" name="upload_frame" frameborder="0" border="0" src="" scrolling="no" scrollbar="no" > </iframe>

毎秒進行状況ビューを要求するフォーム ページの JS は次のとおりです。

http://pastebin.com/6QW3sZLz

誰かが私が間違っているかもしれないことを見ることができますか? ありがとう

また、phpinfo() によって確認されたすべての apc php.ini 設定を次に示します。

apc.cache_by_default    On      On
apc.canonicalize        On      On
apc.coredump_unmap      Off     Off
apc.enable_cli  On      On
apc.enabled     On      On
apc.file_md5    Off     Off
apc.file_update_protection      2       2
apc.filters     no value        no value
apc.gc_ttl      3600    3600
apc.include_once_override       Off     Off
apc.lazy_classes        Off     Off
apc.lazy_functions      Off     Off
apc.max_file_size       30M     30M
apc.mmap_file_mask      no value        no value
apc.num_files_hint      1000    1000
apc.preload_path        no value        no value
apc.report_autofilter   Off     Off
apc.rfc1867     On      On
apc.rfc1867_freq        10k     10k
apc.rfc1867_name        APC_UPLOAD_PROGRESS     APC_UPLOAD_PROGRESS
apc.rfc1867_prefix      upload_ upload_
apc.rfc1867_ttl 3600    3600
apc.serializer  default default
apc.shm_segments        1       1
apc.shm_size    32M     32M
apc.slam_defense        On      On
apc.stat        On      On
apc.stat_ctime  Off     Off
apc.ttl 7200    7200
apc.use_request_time    On      On
apc.user_entries_hint   4096    4096
apc.user_ttl    7200    7200
apc.write_lock  On      On
4

1 に答える 1

0

これは私には間違っているように見えます

function progress() {
    $this->load->model('Site_model');

    $data['PROGRESS_KEY']= $this->input->post('progress_key'); // error here
/* above you fetch "progress key" should change to APC_UPLOAD_PROGRESS */

    $this->load->view('progress', $data);
}

この入力フィールドの名前は APC_UPLOAD_PROGRESS で、ID を取得しています

<input type="hidden" name="APC_UPLOAD_PROGRESS" value="a1105b41e90ed6cdaa7bdef008da40ee" id="progress_key"  />

また、JavaScriptは問題ないように見えますが、現在の値を取得していません。手動で設定しています。

$("#progress_key").val();

入力フィールドの値を与える必要があります。

于 2012-07-20T19:49:01.137 に答える