Я пытаюсь загрузить изображение с помощью PHP и AJAX.Загрузить изображение, используя AJAX и PHP?
Без AJAX мое изображение/файл загружается отлично, но когда я пытаюсь использовать AJAX, страница не обновляется, я не получаю никакого изображения/файла, загруженного!
Вот мой код:
Мой PHP код, как я уже говорил выше, это отлично работает без AJAX:
if (isset($_POST['u_id_im'])) {
if ($_FILES['fileField']['tmp_name'] != "") {
//$details = mysql_real_escape_string($_POST['details']);
$newname = "$askeru23.jpg";
move_uploaded_file($_FILES['fileField']['tmp_name'], "users_fav/".$_GET['id']."/$newname");
}
}
HTML форма:
<form id="imguploader" method="post" action="" enctype="multipart/form-data">
<label style="font-size:22px; color:#666; font-weight:bold; margin-top:50px; width:100%; height:50px; padding-top:50px;">Upload Photo</label><br /><br />
<?php echo $usersupload; ?>
<input type="hidden" name="askeruim" id="askeru" value="<?php echo $askeru23; ?>"/><br />
<input type="hidden" value="<?php echo $u_id; ?>" name="u_id_im" />
<input type="file" name="fileField" id="fileField" />
<input type="submit" name="submit" id="closethebox" class="submit" value="UPLOAD" />
</form>
JQuery код:
$(function(){
$('#imguploader').on('submit', function(e){
// prevent native form submission here
e.preventDefault();
// now do whatever you want here
$.ajax({
type: $(this).attr('method'), // <-- get method of form
url: $(this).attr('action'), // <-- get action of form
data: $(this).serialize(), // <-- serialize all fields into a string that is ready to be posted to your PHP file
beforeSend: function(){
},
success: function(data){
}
});
});
});
As сторона примечания, код AJAX находится в пределах функции готовности документа.
Не могли бы вы посоветовать это?
Благодаря
Вы искали 'enctype'? вам нужно установить его в 'multipart/form-data' при отправке файлов. также загрузка файлов assync не поддерживается в старых браузерах/базовой сериализации. –
@LoganMurphy, не уверен, что вы имеете в виду, глядя в enctype! не уверен, что вы подразумеваете, установив multipart/form-data. также старые браузеры не поддерживаются в моем приложении! более старые браузеры даже не поддерживаются их собственными разработчиками, поэтому его время для людей, чтобы прийти к 2014 году, или же остаться позади. – shell
Возможный дубликат [Отправка multipart/formdata с помощью jQuery.ajax] (http://stackoverflow.com/questions/5392344/sending-multipart-formdata-with-jquery-ajax) –