Здравствуйте, я работаю над сайтом, на котором вы можете отправлять изображения. Я не хочу, чтобы страница была перезагружена, когда изображение было отправлено. После того, как изображение опубликовано на php-странице, оно хранит BLOB в базе данных MYSQL.Почему загрузка JQuery на странице PHP во время публикации?
form id="form2" action="saveImage.php" method="post" enctype="multipart/form-data">
<input id="thumbage2" name="Image1" class="ModalArea2" type="file" style="display:none">
<center><label for="thumbage2" id="labelthumb2" style="margin-top:35px;">Choose Image</label></center>
<button class="ModalButton2" >Submit</button>
<a class="ModalButton2" onclick="cancel2();">Cancel</a>
</form>
Выше мой код HTML. Вот мой JavaScript/JQuery код:
$(':file').change(function(){
var file = this.files[0];
var name = file.name;
var size = file.size;
var type = file.type;
//Your validation
//console.log(name);
});
$(':button').click(function(){
var formData = new FormData($('form')[0]);
$.ajax({
url: 'upload.php', //Server script to process data
type: 'POST',
xhr: function() { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // Check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // For handling the progress of the upload
}
return myXhr;
},
//Ajax events
beforeSend: beforeSendHandler,
success: completeHandler,
error: errorHandler,
// Form data
data: formData,
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
cancel2();
});
Я скопировал этот код с веб-сайта, но они не делают большую работу, объясняя, как это работает. Таким образом, на данный момент у меня есть данные, которые отправляются в мой PHP-файл, и это работает. Проблема в том, что файл PHP загружен. Я думал, что весь смысл JQuery заключается не в том, чтобы загрузить файл и остаться на той же странице. Почему этого не происходит? Почему я продолжаю загружать страницу PHP в моем браузере? Спасибо, если вы решите это для меня, я был бы на Луне. Это был настоящий удар в яблоко adams для меня в последнее время.
jQuery - это javascript framework. Вся суть ** AJAX ** заключается в отправке данных в фоновом режиме, без (повторной) загрузки любой страницы. И вы действительно не должны просто копировать код в любом месте, не зная, что он делает, или как настроить его для работы для вас.Теперь мы видим, что он не работает для вас, поскольку страница все еще загружается, и вы не остаетесь на одной странице. –
О сохранении BLOB в базе данных: вы действительно не должны этого делать, это медленно, и для этого создана файловая система, в базе данных нет - пока она работает, вы все равно не должны этого делать. Прочтите этот https://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay –
Простой поиск в Google «Загрузка Ajax без перезагрузки» дает вам этот ответ SO: http: // stackoverflow. com/questions/22038036/uploading-images-using-php-but-without-page-refresh – NavkarJ