Salve , seguendo una guida su internet :

HTML:
codice:
<!DOCTYPE html>
<html>
<head>
	<title>Esempio di upload immagini con PHP e Ajax!</title>
	<meta charset="UTF-8">
	
	<link rel="stylesheet" href="style.css">
	<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
	
	<!-- File citati precedentemente -->
	<script src="jquery.ui.widget.js"></script>
	<script src="jquery.iframe-transport.js"></script>
	<script src="jquery.fileupload.js"></script>
	<script src="main.js"></script>
</head>
<body>
	<div id="contenitore">
		<form method="post" action="upload.php" enctype="multipart/form-data"
			id="upload">
			<div id="rilascia">Rilascia l'immagine qui!</div>
			<a>Sfoglia</a> <input type="file" name="upl" multiple /> <span
				id="stato"></span>
         
		</form>
	</div>
</body>
</html>
PHP:
codice:
<?php
if(!empty($_FILES["file"])) {
    if($_FILES["file"]["error"] == 0) {
        $estensione = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);


        if($estensione == "png" || $estensione == "jpg") {
            $kb = 1024;
            $mb = $kb * 1024;
                
            if($_FILES["file"]["size"][$indice] < 4*$mb) {
                $risultato = move_uploaded_file($_FILES["file"]["tmp_name"][$indice],  "cartella_upload/" . $_FILES["file"]["name"]);
                if($risultato) {
                    echo "File spostato con successo!";
                } else {
                    die("Errore imprevisto durante lo spostamento dell'immagine! :(");
                }
            } else {
                die("Il file selezionato è troppo grande, non deve superare 1MB!");
            }
        } else {
            die("Estensione non consentita! Hai cercato di caricare un file ." . $estensione . "!");
        }
    } else {
        die("Errore imprevisto durante il caricamento dell'immagine! :(");
    }
} else {
    die("Nessun file selezionato.");
}
JS:

codice:
var stato = $("#stato").val();


$('#upload').fileupload({
	dataType: "json",
	dropZone: $('#rilascia'),
	add: function(e, dati) {
		var XHR = dati.submit();
	},
	progress: function(e, dati) {
		stato.html("Caricamento in corso...");
	},
	done: function(e, dati) {
		stato.html("Terminato!");
	},
	fail: function(e, dati) {
		stato.html("Errore imprevisto durante l'upload!");
	}
});

Il tutto testabile qui :

http://lemuria.altervista.org/upload/

Perchè non funziona?