I have been battling with this piece of code for literally days now... Would appreciate any help
The script calls the php file without a problem when the submit key is hit. However, it doesnt post the form data with it.
The HTML form
action="" enctype="multipart/form-data"> File:
The Javascipt
$(function() { $(".submit").click(function() { var obj = document.getElementById("form_div"); var load = document.getElementById("load"); jQuery.ajax({ type: "POST", name: "image", url: "upload_imagel.php", enctype: "multipart/form-data", beforeSend: function(){ obj.style.display = 'none'; load.innerHTML = "
/>"; }, error: function(){ alert('Error has occured'); }, timeout:5000, success: function( results ){ load.style.display = 'none'; obj.style.display = 'block'; } }) return false; }); });
The PHP
The following is then empty
$image=$_FILES['image']['name'];
Thanks to pekka I changed the following AJAX to
$(document).ready(function() {
var obj = document.getElementById("form_div");
var load = document.getElementById("load");
var options = {
beforeSend: function(){
obj.style.display = 'none';
load.innerHTML = "<img src='../images/misc/ajax-loader.gif' />";
},
success: function(){
load.style.display = 'none';
obj.style.display = 'block';
},
type: 'POST',
timeout: 5000
};
$('#image_form').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
});
However still getting the same problem
$image=$_FILES['image']['name'];
Still empty :(
P.s. html form heading is now
<form id="image_form" method="POST" action="sMain/upload_image_small.php" enctype="multipart/form-data">
Am I missing something?
Невозможно выполнить загрузку файлов с помощью AJAX, потому что ваш сценарий не получит доступа для чтения к файлу на клиентском компьютере.
Вы можете взглянуть на плагин формы jQuery , который для этого использует невидимый iframe.
Это действительно работает Пекка, у меня была опечатка в php файле. Так раздражает.
Спасибо. Также наткнулся на это на другом форуме
http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html
Спасибо вам обоим за помощь.
Вы можете попробовать использовать Plupload ( http://www.plupload.com ). Он имеет множество функций и хорошо работает для загрузки файлов.