第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

通過ajax上傳圖像時(shí)未定義索引“文件”

通過ajax上傳圖像時(shí)未定義索引“文件”

PHP
弒天下 2023-10-15 16:43:03
嘿,我正在嘗試向 mysql 數(shù)據(jù)庫提交表單。不過,該表單位于模式內(nèi)部。然后,數(shù)據(jù)通過 ajax 發(fā)送到 ajax 處理程序,并運(yùn)行 php 函數(shù)。每次在處理程序中寫入“文件”一詞時(shí),我都會(huì)收到錯(cuò)誤。這是我的表單、ajax 和處理程序。表單輸入:<div class="form-group">    <label>Image</label>    <input type="file" class="addInput" name="image" id="newImage" placeholder=""></div>JavaScript/Ajaxvar name = $('#newName').val();              var description = $('#newDescription').val();              var notes = $('#newNotes').val();              var status = ($('#newStatus').is(":checked") ? 'active' : '');              var slug = $('#newSlug').val();              var start_date = $('#newStartDate').val();              var end_date = $('#newEndDate').val();              var image = $('#newImage').val();              let data = {                action: 'NewEventExhibition',                name: name,                description: description,                notes: notes,                status: status,                slug: slug,                start_date: start_date,                end_date: end_date,                image: image,                event_code: '<?=$code?>'              };              console.log(data);              $.ajax({                url: '/modules/ajax/ajax_handler.php',                type: 'POST',                data: data,                success: function(response) {                  console.log(response);                },                fail: function(response) {                  console.log(response);                }              })處理程序$added = $image = $filename = $imagefile = $imagefilesuccess1 = $imagefilewarning1 = NULL;        if(!empty($_POST['image'])){        $filename=($_SERVER['DOCUMENT_ROOT']."/assets/images/" . $_FILES["file"]["name"]);        $imagefile=($_FILES["file"]["name"]);            $path="/assets/images/".$imagefile."";        $allowedExts = array("gif", "jpeg", "jpg", "png", "JPG", "PNG");        $tmp = explode(".", $imagefile);我只將圖像代碼包含在 ajax 處理程序中。$image底部的變量是我用來上傳的變量。
查看完整描述

1 回答

?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

要通過 ajax 上傳文件,您可以使用FormData。但首先你需要查看你的瀏覽器是否支持 XHR2 ,并不是每個(gè)瀏覽器都支持通過 ajax 發(fā)送文件。

因此,如果您想讓腳本在每個(gè)瀏覽器中工作,最好采取解決辦法,(嘗試在隱藏輸入中執(zhí)行 Base64,或者使用 iram,以便 iram 單獨(dú)刷新)

支持XHR2 的瀏覽器

因此,要添加 formData,您可以在 js 腳本中做一些更改:

??var?formData?=?new?FormData($('#yourform')[0]);

或者如果您不想在 yout html 中創(chuàng)建任何表單:

var formData = new FormData();

formData.append('name',$('#name').val());

formData.append('image',$('#image').get(0).files[0]);

。 編輯


你也可以嘗試這個(gè):


<input type="file" onchange="PrepareFile(this)" >

并初始化一個(gè)全局formData


async function PrepareFile(file)?

{? ? ? ? ?

? ? formData.append("file", file.files[0]);

}

.


... // inside? ?$.ajax({

? ? data: formData,

? ? dataType: 'json',

? ? mimeType: 'multipart/form-data', // this too

? ? contentType: false,

? ? cache: false,

? ? processData: false,

....

或者您可以使用XMLHttpRequest,在這種情況下,您將放棄 ajax 僅適用于 javascript ,但不適用于 IE<10。


查看完整回答
反對 回復(fù) 2023-10-15
  • 1 回答
  • 0 關(guān)注
  • 123 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號