亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 AJAX 將 HTML 表單文件傳遞給 PHP

如何使用 AJAX 將 HTML 表單文件傳遞給 PHP

PHP
神不在的星期二 2023-08-06 10:46:16
我有一個帶有文件類型輸入的表單。我希望能夠在 JavaScript/jQuery 中捕獲附加到此輸入的圖像,并將其傳遞給我的 PHP 函數,然后上傳到我的 WordPress 媒體。media_handle_upload()根據文檔,使用 WordPress函數需要將$_FILES文件發送的數組的索引作為第一個參數。到目前為止,這是我的嘗試:超文本標記語言<form id="company-logo-form" method="post" action="#" enctype="multipart/form-data">    <input type="file" name="company_logo" multiple="false" id="logo-test"/>    <input class="btn bg green" name="upload_company_logo" type="submit" value="Upload Image" /></form>JavaScript$('#company-logo-form').on('submit', function(e) {    e.preventDefault();    let logo = $('#logo-test').prop('files');    $.ajax({        url: ajax_url,        type: 'POST',        // dataType: 'html',        data: {            company_logo: logo,            action: 'uploadCompanyLogo'        },        error: function(res) {            console.log(res);        },        success: function(res) {            console.log(res);        }    });});PHPadd_action('wp_ajax_uploadCompanyLogo', 'update_company_logo');function update_company_logo() {    $logo = $_POST['company_logo'];    $attachment_id = media_handle_upload($logo, 0);                    echo $attachment_id;}使用此代碼,當我提交表單時,我在控制臺中收到以下 jQuery 錯誤:Uncaught TypeError: Illegal invocation
查看完整描述

1 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

嘗試在 javascript 中使用FormData來正確發送數據。

像這樣的東西:

$('#company-logo-form').on('submit', function(e) {

? ? e.preventDefault();

? ? let logo = $('#logo-test').prop('files')[0]; // Since 'files' is array.

? ? let formData = new FormData(); // Create a new form.

? ? formData.append('action', 'uploadCompanyLogo');

? ? formData.append('company_logo', logo);


? ? $.ajax({

? ? ? ? url: ajax_url,

? ? ? ? type: 'POST',

? ? ? ? data: formData,

? ? ? ? contentType: false, // No content type headers.

? ? ? ? processData: false, // Do not process sent data.

? ? ? ? error: function(res) {

? ? ? ? ? ? console.log(res);

? ? ? ? },

? ? ? ? success: function(res) {

? ? ? ? ? ? console.log(res);

? ? ? ? }

? ? });

});


查看完整回答
反對 回復 2023-08-06
  • 1 回答
  • 0 關注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號