0
ajaxを使用して画像を保存するのに問題があります。私はprocessData: false
とcontentType: false
のようないくつかのパラメータを追加しても、私はちょうどコンソールで0を得ています。私は問題がajaxからphpにデータを渡していると思います。ワードプレスでAjaxを使用して画像を保存する
AJAX
私は最初の店舗イメージにしようとしている...
jQuery(document).ready(function($) {
$(".report-mem-btn a#submit-repot-mem-btn").click(function(event){
event.preventDefault();
var reason_for_report = $('select#reason-for-report').val();
var additional_info = $('textarea#additional-info').val();
var get_rtmedia_file_details = $('.report-member-form').find('input#file-evidence');
var current_user_id = $('input#current_user_id').val();
var displayed_user_id = $('input#displayed_user_id').val();
console.log(get_rtmedia_file_details[0].files[0]);
var formData = new FormData();
var individual_file = get_rtmedia_file_details[0].files[0];
formData.append('action', 'report_member_action');
formData.append("file", individual_file);
jQuery.ajax({
type : "post",
url : report_mail.ajax_url,
dataType: 'json',
processData: false,
contentType: false,
data: formData,
success: function(response) {
console.log('test: '+response);
}
})
});
});
PHP
add_action('wp_ajax_nopriv_report_member_action', 'report_member_action');
add_action('wp_ajax_report_member_action', 'report_member_action');
function report_member_action(){
$uploadedfile = $_FILES['file'];
foreach($uploadedfile as $file) {
if(is_array($file)) {
$attachment_id = upload_user_file($file);
}
}
//var_dump($_FILES);
//echo $uploadedfile;
echo 'Successfully Reported a Member, Thank you!';
exit();
}
function upload_user_file($file = array()) {
require_once(ABSPATH . 'wp-admin/includes/admin.php');
$file_return = wp_handle_upload($file, array('test_form' => false));
if(isset($file_return['error']) || isset($file_return['upload_error_handler'])) {
return false;
} else {
$filename = $file_return['file'];
$attachment = array(
'post_mime_type' => $file_return['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit',
'guid' => $file_return['url']
);
$attachment_id = wp_insert_attachment($attachment, $file_return['url']);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attachment_data = wp_generate_attachment_metadata($attachment_id, $filename);
wp_update_attachment_metadata($attachment_id, $attachment_data);
if(0 < intval($attachment_id)) {
return $attachment_id;
}
}
return false;
}