Ciao a tutti ragazzi, sono nuovo nel forum. Volevo porvi un problema. Vi posto il codice che stavo analizzando.

- Porte della pagina "index.html"
codice HTML:
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript">
        </script>
        <script src="javascript/ajaxuploadjs.js" type="text/javascript">
        </script>
        <section id="main">
            <div id="thumb">
            </div>
            <div id="upload">
                <form>
                    <input type="file" id="file" accept="image/*" />
                </form>
                <div id="selected">
                </div>
                <button id="send">
                    Invia immagine
                </button>
                <button id="select">
                    Seleziona immagine
                </button>
                <progress id="progressbar" max='100' value='0'>
                </progress>
            </div>
        </section>
- Parte della pagina "ajaxuploadjs.js"
codice:
    $("#file").change(
        function () {
            var files = $(this)[0].files;
            if ( ! files.length ) {
                $("#selected").html("Nessun file selezionato!");
            } else {
                var img = new Image();
                $( img ).load(
                    function () {
                        window.URL.revokeObjectURL( this.src );
                        $("#selected").html( files[0].name + "<br />" + $(this)[0].naturalWidth + " x " + $(this)[0].naturalHeight + " @ " + Math.round( files[0].size / 1024 ) + " Kb" );
                        $("#send").show();
                        $("#select").addClass("mini");
                    }
                ).attr( "src" , window.URL.createObjectURL( files[0] ) );
                 
                $("#thumb").html( img );
            }
        }
    );
     
    $("#send").click(
        function () {
            $(this).hide();
            $("#select").hide();
            $("#progressbar").show();
             
            var fd = new FormData();
            fd.append("file", $("#file")[0].files[0]);
             
            $.ajax({
                url: "image.php"
                , type: "POST"
                , data: fd
                , dataType: "json"
                , processData: false
                , xhr: function () {
                    var xhr = $.ajaxSettings.xhr();
                    xhr.upload.addEventListener(
                        "progress"
                        , function ( evt ) {
                            if ( evt.lengthComputable ) {
                                $("#progressbar").attr({value: evt.loaded, max: evt.total});
                            }
                        }
                        , false
                    );
                     
                    return xhr;
                }
            })
            .done(
                function( resp ) {
                    $("#progressbar").hide();
                    $("#selected").html( resp.status );
                    $("#select").removeClass("mini").show();
                    $("#progressbar").attr({value: "0", max: "100"});
                }
            );
        }
    );
});
- Questa è la pagina "image.php"
Codice PHP:
<?php
    $fileName 
$_FILES['file']['name'];
    
$fileType $_FILES['file']['type'];
      
    
$json json_encode(
        array(
            
'name'      => $fileName,
            
'type'      => $fileType,
            
"status"    => "Immagine ricevuta!"
          
)
    );
      
    echo 
$json;
?>
Come avrete intuito dal codice, quello che questo piccolo sistema fa è il trasferimento di immagini tramite codice jQuery, sfruttando la tecnica ajax... Il sistema procede correttamente, fino al momento in cui, lo script del file image.php non completa la sua esecuzione perché non trova alcun file nel vettore $_FILES. Quindi no ha ricevuto alcun dato dalla funzione ajax di jQuery, quindi neanche l'oggetto fd. Pensavo all'inizio che fosse un problema legato allo stesso FormData (ho escluso che il problema fosse la funzione ajax, perché ho verificato che la pagina php veniva chiamata), ma se così fosse, si sarebbe dovuta bloccare l'esecuzione delle istruzioni successive a quelle dove viene elaborato l'oggetto fd (almeno, quando utilizzo javascript accade questo, se si presenta un errore, il resto delle istruzioni si blocca). Ma ho avuto conferma che non era quello l'errore, quando, trasferendo i file su un server remoto, dato che stavo lavorando con un web server locale, lo script funzionava. Perciò ho pensato che l'errore potesse essere collegato al server o forse ad una determinata configurazione del file php.ini. Sapete indicarmi cosa modificare nel file php.ini? Oppure, se c'é un errore che non ho visto, che mi causa questo problema, potete farmelo notare gentilmente?
(Scusate se mi sono dilungato, ma ho ritenuto giusto precisare tutto per agevolarvi)
Grazie.