Поэтому PHP отлично работает, когда я просто форма стандартным образом. Но когда я пытаюсь отправить форму через ajax, он не видит $ _file [] и возвращает «success | na», который я хочу, чтобы он делал, если нет файла, но я получаю тот же результат, если есть файл.
Правильны ли настройки ajax? cashe: false, processData: false?
Любая помощь была бы полезной ребята, я всегда могу использовать iframe, но я бы предпочел. Спасибо за время!
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'); } } }); }
<form id="info_for" class="form-horizontal col-lg-8 dblue_text" role="form" action="../php/profile_image.php" method="post" enctype="multipart/form-data"> <div class="form-group"> <label class="control-label col-sm-2" for="info_abo"><i class="fa fa-info"></i> About</label> <div class="col-lg-8 col-sm-10"> <textarea class="form-control" id="info_abo" name="info_abo" placeholder="Let your friends know a little about yourself!"><?php echo $info_abo;?></textarea> </div> </div> <div class="form-group"> <label class="control-label col-sm-2" for="file"><i class="fa fa-picture-o"></i> Avatar</label> <div class="col-lg-8 col-sm-10"> <input type="file" name="file" id="file"> </div> </div> </form> <button onclick="info_save()" class="btn btn-info">Update</button> <?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"] < 100000) && in_array($file_extension, $validextensions)){ if ($_FILES["file"]["error"] > 0){ echo "Return Code: " . $_FILES["file"]["error"] . "<br/><br/>"; }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();} ?>