Czy ktoś mógłby mi wytłumaczyć dlaczego ajax nie może podać dokładnych danych do PHP $_FILES? tablica plików zawraca mi dokładnie wartość "Array ( ) [" dla echo($_FILES['userfile']['tmp_name']); i innych rekordów? Dane do php wysyłam user_file.files[0] czyli chyba cały plik ale to nic nie daje nic
jak to przystosować aby działało ?
AJAX:
function upload_user_file()
{
//div.innerHTML
var div = document.getElementById("warstwaDanych");
var user_file = document.getElementById('plik');
var odpowiedz = "";
XMLHttpRequestObject = new getXMLHttpRequestObject();
if(XMLHttpRequestObject)
{
div.innerHTML = message_box("Wysyłam plik ...","bigbox","blue");
XMLHttpRequestObject.open("POST", "./upload_file/funkcje_dla_ajax.php");
//XMLHttpRequestObject.open("POST", "./funkcje_dla_ajax.php");
XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 )
{
if(XMLHttpRequestObject.status == 200)
{
odpowiedz = XMLHttpRequestObject.responseText;
// odpowiedz = unescape(odpowiedz);
//return odpowiedz;
div.innerHTML = odpowiedz;
XMLHttpRequestObject = null;
}
}
}
var wartosc = 'wartosc=UPLOAD_FILE' + '&userfile=' + user_file.files[0] + '&filename=' + user_file.files[0].name;
//wysylka = escape(wysylka);
XMLHttpRequestObject.send(wartosc);
}
}
function getXMLHttpRequestObject()
{
try{
return new XMLHttpRequest();
}
catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
return false;
}
}
}
PHP:
<?php
include_once(realpath('../funkcja.php'));
switch((count($_POST) ?
$_POST['wartosc'] : false))
{
case'UPLOAD_FILE':
{
upload_user_file();
break;
}
case'MESSAGE_BOX':
{
if (isset($_POST['tresc']) && isset($_POST['box']) && isset($_POST['color'])) {
message_box($_POST['tresc'],$_POST['box'],$_POST['color']);
}
break;
}
case NULL:
{
echo '<z>Narazie tu nic nie ma</z>'; ;break;
}
}
function upload_user_file()
{
//echo ('<center style="font-size:28">Wysyłanie pliku. Proszę czekać.<br><br></center>');
$_FILES['userfile']=$_POST['userfile'];
$file_name=$_POST['filename'];
if ($_FILES['userfile']['error']>0)
{//if
message_box('Plik nie może być wysłany !<br>','bigbox','red');
switch ($_FILES['userfile']['error'])
{
case 1
:echo message_box
('Rozmiar pliku przekroczył wartość graniczną upload_max_file_size!','box','red'); break; case 2
:echo message_box
('Rozmiar pliku przekroczył wartość graniczną max_file_size!','box','red'); break; case 3
:echo message_box
('Plik wysłany tylko częściowo.','box','red'); break; case 4
:echo message_box
('Nie wysłano pliku.','box','red'); break; }
//exit;
}//if
//umieszanie pliku w katalogu
/*if ($_FILES['userfile']['size'] > pobierz_z_admin_panel('UPLOAD_SIZE')) - SIZE tez zwraca śmieci
{
message_box('Rozmiar pliku przekroczył wartość graniczną !','box','red');
}
else */{
$tmp_id = pobierz_user_id($_SESSION["user_loged"]);
$lokalizacja = realpath('./Files/'.$tmp_id.'/'.$file_name);//$_FILES['userfile']['name']; echo($_FILES['userfile']['tmp_name']); <-to zwraca śmieci
:( {//if
{//if
echo message_box
('Plik został wysłany ale jest problem z zapisem na dysku !','box','red'); //exit;
}//if
else
message_box('Plik wysłany poprawnie !<br>','bigbox','green');
}//if
else
{//else
message_box('Wystąpił problem z wysyłaniem !<br>','bigbox','red');
}//else
//message_box('Plik wysłany poprawnie !<br>','bigbox','green');
}
}
?>