2016-05-27 6 views
0

Хорошо, что есть уже отредактированная форма с большим количеством полей, но все сохранение и проверка проходят через ajax. Они попросили меня сейчас загрузить файл, я жесткий, что только будет установлен вход и получить его на спине, но так как все идет через ajax я наклоняю.Загрузить изображение через Ajax

Я не хочу менять всю функцию и прохожу через подачу, если это не обязательно. Я искал некоторых загрузчиков файла через ajax, но все они являются перетаскиванием типа, и мне они не нравятся, потому что вам нужен простой файл. И те, что я нашел, которые выглядели просто, где во флеш ...

Есть ли простой скрипт, который позволяет мне загружать простой файл через ajax без необходимости изменения типа отправки полей.

Спасибо-х заранее товарищи;)

//the js that saves all the inputs 
function _edit_campaign(){ 
var data = formvalues_inspinia("body"); 
data.action=_action; 
data.status=$("#smf_ior_status").val(); 

$.ajax({ 
    url: "/save_changes", 
    dataType: "json", 
    data: data, 
    method:"POST", 
    success: function (response) { 
     if(!response.status){ 
      toastr_error(response.desc); 
      $("#submit_confirm").prop("disabled", false); 
      $("#"+response.camp).focus(); 
     }else{ 
      toastr_success(response.desc); 

     } 
    } 
}); 

}

+1

Вы можете показать свой код, пожалуйста? –

+0

@PareshGami там yopu имеют код js, где я сохраняю все поля формы – Caius

ответ

1

сторона клиента

$.ajax({ 
url: "ajax_php_file.php", // Url to which the request is send 
type: "POST",    // Type of request to be send, called as method 
data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) 
contentType: false,  // The content type used when sending data to the server. 
cache: false,    // To unable request pages to be cached 
processData:false,  // To send DOMDocument or non processed data file it is set to false 
success: function(data) // A function to be called if request succeeds 
{ 

}); 

сторона сервер

$sourcePath = $_FILES['file']['tmp_name'];  // Storing source path of the file in a variable 
$targetPath = "upload/".$_FILES['file']['name']; // Target path where file is to be stored 
move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file 
+0

nice !!! Это то, что мне нужно: D И если мне нужно послать несколько входов больше для этого ajax, как бы это было? позволяет сказать, что у меня есть вход-файл-id = file_pdf и вход под названием category Не могли бы вы отредактировать код, чтобы получить это? tnx – Caius

+0

значение категории ввода должно быть в $ _POST ['category'] –

1

Вы можете добиться этого в более простом способе, используя «ajaxSubmit ». Включите jquery.form.js на свою страницу и отправьте форму.

Он отправляет все данные формы, включая файл на сервере, и вы можете обрабатывать эти данные обычным способом.

Смежные вопросы