2012-07-20 71 views
1

我有一個運行codeigniter的imagehost樣式網站,我試圖使用APC在文件上傳時顯示進度條。APC fetch返回null,codeigniter進度條

現在,當我訪問進度視圖頁面或通過ajax時,它只是返回bool(false)

我測試了apc_store並在該視圖中抓取,以查看APC是否正常運行,並且這種方式可行,似乎我的上傳表單方式不適用於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 

回答

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(); 

應該給你輸入字段的值。

+0

我只是做了該編輯和/前進/ *鍵* 返回布爾(假)還是:/ 編輯:只是想你現在的JS改變...... – 2012-07-20 19:51:36

+0

你可以忽略我已經硬編碼的關鍵在JS pastebin中,它實際上設置爲PHP中的progress_key值,只是硬編碼以顯示在示例中。 我甚至在上傳頁面的某個鍵上試過硬編碼,測試結果相同。 – 2012-07-20 19:55:16