Visualizzazione risultati 1 fino 8 di 8

Discussione: upload asincrono con ajax e php

  1. #1
    Guest

    Predefinito upload asincrono con ajax e php

    ho una questione da porvi, vorrei sapere se possibile caricare un file con ajax e php senza usare l'iframe?

    Se si come ? grazie :)

  2. #2
    Guest

    Predefinito

    Questo fa al caso tuo, ma è in Inglese: http://www.ajaxf1.com/tutorial/ajax-...-tutorial.html

  3. #3
    AlessandroLin non è connesso Neofita
    Data registrazione
    28-02-2011
    Messaggi
    18

    Question file temporanei

    Buongiorno,

    Vorrei aggiungere un quesito, che spero sia in tema.
    Riguara l' upload di file con Ajax.

    Abbiamo un oggetto
    xmlHt = new XMLHttpRequest();

    Che invia un file 'f_up' al server con
    una chiamata asincrona:
    xmlHt.open("POST","up_beta.php",true);
    // eventuali setRequestHeader , ecc. ecc.
    xmlHt.send('f_up');

    A questo punto, una volta che il file è arrivato as server,
    deve essere gestito: controllato ancora, piazzato nella directory giusta ecc. ecc.

    Orbene, una chiamata così non passa da un normale form e non viene avviata
    da un input type = "submit", ma dall' evento onclick di
    un bottone comune, input type = "button".
    Quindi, se non sbaglio, non viene impostata $_FILES[] del php, che avrebbe tutti i
    parametri necessari.

    Allora, come fa il php a recuperare il nome e la locazione del file uplodato?

    Ho visto che tutti lo fanno benissimo, cercando in una cartella
    temporanea del server, ma non mi è per nulla chiaro come.

    Grazie a chi vorrà inviare un commento.
    Alessandro

  4. #4
    Guest

    Predefinito

    Spiacente deludere entrambi ma l'upload asincrono (puro) non è possibile farlo.

    Occorre inviare l'intero modulo (quindi evento submit) ad un iframe per effettuare il caricamento senza aggiornare la pagina.

  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Mi spiace contraddirti, ma è possibile. È sufficiente usare l'oggetto XMLHttpRequest (quello descritto nelle specifiche di livello 2) e la proprietà files (introdotta nelle bozze di HTML5) dell'oggetto HTMLInputElement rappresentante l'elemento input che permette all'utente di scegliere i file da caricare.

    AlessandroLin: l'implementazione può essere complessa, per questo ti consiglio di usare soluzioni già pronte.

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Mi spiace contraddirti, ma è possibile. È sufficiente usare l'oggetto XMLHttpRequest (quello descritto nelle specifiche di livello 2) e la proprietà files (introdotta nelle bozze di HTML5) dell'oggetto HTMLInputElement rappresentante l'elemento input che permette all'utente di scegliere i file da caricare.

    AlessandroLin: l'implementazione può essere complessa, per questo ti consiglio di usare soluzioni già pronte.
    Noi non andiamo daccordo.
    E' una questione di visione delle cose.
    Ok. Hai ragione, in HTML5 è possibile. Ma, contrariamente a come la vedi tu, per me lasciare fuori il 50% dei browser (ti piaccia o no IE in versione < 8 rappresenta ancora una buona fetta dei browser in unso) per me non ha senso.

  7. #7
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Ma non sono tagliati fuori, se il browser non supporta queste tecnologie (o più semplicemente ha Javascript disabilitato) il caricamento avverrà alla vecchia maniera. Il trucco sta nel creare un normale e comunissimo modulo di caricamento file e successivamente senza "smontarlo" introdurre mediante Javascript il caricamento mediante XHR.

  8. #8
    AlessandroLin non è connesso Neofita
    Data registrazione
    28-02-2011
    Messaggi
    18

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Noi non andiamo daccordo.
    E' una questione di visione delle cose.
    Ok. Hai ragione, in HTML5 è possibile. Ma, contrariamente a come la vedi tu, per me lasciare fuori il 50% dei browser (ti piaccia o no IE in versione < 8 rappresenta ancora una buona fetta dei browser in unso) per me non ha senso.
    Il che è verissimo, direi.
    In fondo ... con l' iframe si è sempre andati bene e pochi browser implementano l'html5 come dici.

    Ciao
    Alessandro

    EDIT:

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    ...l'implementazione può essere complessa, per questo ti consiglio di usare soluzioni già pronte.
    Già. E' inutile starci sopra più di tanto.

    Comunque giusto per amore di discussione, ho visto che viene adoperato
    talvolta un filtro del php, precisamente "php://input",
    per intercettare il flusso che arriva al server.

    Altri usano un componente Java per recuperare le intestazioni.
    Niente di semplice, comunque.

    Ciao
    Alessandro
    Ultima modifica di alemoppo : 19-06-2012 alle ore 12.22.14 Motivo: Non fare post consecutivi: usa il tasto "Edita" per editare i messaggi

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •