Можно загрузить файлы на сервер с помощью ajax, но имейте в виду, что он не поддерживается всеми браузерами (в основном IE имеет некоторые проблемы с этим). Код ниже может использоваться для отправки всей формы на сервер с помощью ajax. Это позволит загружать файлы поддерживающими браузер браузерами.
var formData = new FormData($('#ID_OF_YOUR_FORM')[0]);
$.ajax({
url: "/urltophpscript.php",
type: "POST",
data: formData,
processData: false,
contentType: false,
dataType: "json",
success: function(data) {
if(data.success){
// Do something
}
if(data.error){
// DO something
}
},
error: function() {
// Do something
}
});
Однако я бы скорее посоветовал вам пойти с решением, поддерживаемым всеми браузерами. Это делается с помощью скрывается IFRAME на странице которой форма будет размещена на:
<form action="#" method="post" enctype="multipart/form-data" id="Inet" class="form-horizontal" name="Inet" >
<iframe src="" id="ulframe" name="ulframe" style="display:none;"></iframe>
Выше форма и IFrame, где контент будет размещен на. Код ниже используется для передачи данных в IFRAME, а затем прочитать результат вторит из PHP сценария в формате JSON:
$('#Inet').attr('action', '/modules/module.intranett/ajax/intranett/createArticle.ajax.php');
$('#Inet').attr('target', 'ulframe');
$('#Inet').submit();
$('#ulframe').load(function(){
var data = JSON.parse($('#ulframe').contents().text());
if(data.success) {
// Do Something
}
});
return false;
Вы можете найти ответ на свой вопрос здесь http://stackoverflow.com/questions/21164365/ как-to-send-image-to-php-file-using-ajax или http://stackoverflow.com/questions/19447435/ajax-upload-image и много разных [здесь] (https: // www. google.ch/search?q=site%3Astackoverflow.com+posting+an+image+with+ajax&oq=site%3Astackoverflow.com+posting+an+image+with+ajax) – Spokey
вместо использования '$ (" # file ")', почему бы вам не пойти на '$ (" # file "). val()'. Первый даст вам «массив объекта», а последний дает вам «путь» с именем «filename». –