2010-08-26 26 views
0

我試圖在我的wordpress選項面板和元框中實現AjaxUpload的新版本...雖然我不相信我應該從我工作的舊版本更換。這是調用上傳功能jQuery的:Valums AjaxUpload和Wordpress wp_handle_upload

var uploader = new qq.FileUploader({ 
// pass the dom node (ex. $(selector)[0] for jQuery users) 
element: document.getElementById('file-uploader'), 
// path to server-side upload script 
action: ajaxurl, 
params: { 
    action: 'upload_callback', 
    id: 'image', 
}, 
}); 

我想起了ajaxurl和傳球動作後來被用作函數的名字從我嘗試瓦特/以前的版本。它似乎正常工作,因爲該函數被調用。

然後我的回調函數是

function childtheme_upload_callback() { 
$stuff = htmlspecialchars(serialize($_POST)); 
die("hey: " . $stuff); 

} 

add_action('wp_ajax_upload_callback', 'childtheme_upload_callback'); 

這個功能是我在那裏試圖wp_handle_upload,但它總是空的,所以我開始試圖通過檢查如果有什麼是有史以來未來通過調試它。但不管我做什麼$_POST$_FILES都是空的。即使壽螢火說POST請求是這樣的:

http://localhost/plagueround/wp-admin/admin-ajax.php?qqfile=12_col.gif&action=upload_callback&id=image

和螢火說帖 「源」 的模樣:

來源 GIF89aüÿêêÿÓÓÿÿÿÿåå,ü 9©Ë8'HÈ×;;; P P ;

我推測是哪個圖像?但在這一點上,我不知道。有沒有人成功應用了新的http://valums.com/ajax-upload/ Ajax Upload with Wordpress的wp_handle_upload

回答

1

所以Maybe..Just也許它本
params: { action: 'upload_callback', id: 'image', }, });
有後您的最後一個逗號} ..它應該是....
params: { action: 'upload_callback', id: 'image', }});

也有你嘗試了所有的故障排除來自http://valums.com/ajax-upload/的提示如果上傳沒有完成,說失敗。

  • 將FileUploader的調試選項設置爲true。
  • 打開您擁有FileUploader的頁面。
  • 在瀏覽器中打開開發者控制檯。
  • 嘗試上傳文件。你應該看到一個服務器serponse。 對於已完成的請求,應該是{success:true}。如果不是,那麼你的服務器端腳本有問題。

不知道是否有幫助?

+0

不知道爲什麼downvote?添加評論會很好。 – gideon 2012-06-14 09:41:36

0

我能夠使它工作。 jsUpload和wp_handle_upload在WordPress中。我建議看看在jsUpload歸檔中提供的服務器示例php.php文件。他們使用類似的東西來有效地將文件上傳到臨時目錄:

$uploader = new qqFileUploader($allowedExtensions, $sizeLimit); 
$result = $uploader->handleUpload($upload_tmp_dir.'/'); // with ending slash 

希望它有幫助。否則,讓我知道,我會盡力幫助你。

0

我知道這是一箇舊帖子,但這可能會幫助其他人遭受同樣的問題。

檢查您的回覆格式是否正確,並且您退出了您的請求;

您的回答應該是這樣的:

{'success'=>true} 

從我可以告訴die("hey: " . $stuff);將產生不正確的響應

hey: {'success'=>true} 

這是我的回調函數看起來像:

public function uploadCallback(){ 

    $uploader = new FileUploadManager($allowedExtensions, $sizeLimit); 
    $resultArray = $uploader->handleUpload('uploads/'); 

    echo htmlspecialchars(json_encode($resultArray); 
    exit; 
} 
+0

絕對是一箇舊帖子!我顯然還沒有在這方面努力,但是誰知道,我可能很快就會回來。感謝回調函數...我一直在學習'退出'是非常重要的。 – helgatheviking 2012-02-07 15:32:08