Caricamento immagine con Ajax ma PHP non vede il file

Quindi il PHP funziona bene quando ho solo la forma in un modo standard. Ma, quando provo a inviare il modulo tramite ajax, non vedo $ _file [] e restituisce “successo | na” che voglio che faccia se non ci sono file, ma ottengo lo stesso risultato se c’è un file.

Le impostazioni Ajax sono corrette? cashe: false, processData: false?

Qualsiasi aiuto sarebbe utile ragazzi posso sempre usare un iframe, ma preferirei di no. Grazie per il tempo!

function info_save(){ gf.wait(); var info_ava = ''; var info_abo = $('#info_abo').val() target = './php/profile_system.php'; $.ajax({ url: "./php/profile_image.php", type: "POST", data: new FormData('#info_for'), contentType: false, cache: false, processData:false, success: function(reply){ imgresponse = reply.split("|"); if(imgresponse[0] == 'success' || imgresponse[0] == 'Success'){ if(imgresponse[1] == 'na'){info_ava = ' ';} else{info_ava = imgresponse[1];} var formDataA = { 'action': 'info', 'info_abo': info_abo, 'info_ava': info_ava }; profile_ajax(target, formDataA,'info'); }else{ profile_stop(reply,'info'); } } }); } 
 
<?php if(ISSET($log_username) && $user_ok == true){ if(isset($_FILES["file"]["type"])){ $validextensions = array("jpeg", "jpg", "png","gif"); $temporary = explode(".", $_FILES["file"]["name"]); $file_extension = end($temporary); if ((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/gif")) && ($_FILES["file"]["size"] 0){ echo "Return Code: " . $_FILES["file"]["error"] . "

"; }else{ if (file_exists("../profiles/".$log_username."/".$_FILES["file"]["name"])){ echo "File Already Exists: ".$_FILES["file"]["name"]; }else{ $sourcePath = $_FILES['file']['tmp_name']; // Storing source path of the file in a variable $targetPath = "../profiles/".$log_username."/".$_FILES['file']['name']; // Target path where file is to be stored if(move_uploaded_file($sourcePath,$targetPath)){echo 'success|'.$_FILES["file"]["name"]; exit();} else{echo 'Connection Error';exit();} } } }else{ echo "Invalid file Size or Type"; exit(); } }else{echo 'success|na'; exit();} }else{echo 'Please Sign In'; exit();} ?>

Costruttore FormData accetta un HTMLFormElement come parametro, non una stringa di selezione o un object jQuery.

 data: new FormData(document.getElementById('info_for')), 

o

 data: new FormData($('#info_for')[0]), 

o

 data: new FormData(document.querySelector('#info_for')),