Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Ajax] invio di una richiesta post

    ciao, in una pagina ho il seguente form:

    codice:
    <form name="upload">
    <span class="content">Allega un file:</span> <INPUT TYPE="file" NAME="fileU">
    <INPUT TYPE="button" value="Upload" onClick="upload(fileU)">
    </form>
    cliccando sul pulsante Upload, viene richiamata questa funzione:

    codice:
    function upload(e) {
    		var path = e.value; // prelevo il path del file
    		var f = window.open();
    				
    		var request;
    		request = new XMLHttpRequest();
    		request.open("POST", "/upload.php", true);
    		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    		request.onreadystatechange = function() {
    			if(request.readyState == 4) {
    				var response = request.responseText;
    				f.document.write(response);
    			}
    		}
    		request.send("submit=&fileU="+path);
    }
    che ho costruito in modo che venga passato allo script upload.php, il path del file.
    Il problema è che non carica il file...lo script php restituisce sempre la scritta "Nessun file è stato trasferito! Selezionare un file!".....cioè sembra che il path del file non venga passato correttamente.

    Vi posto parte dello script php, così potete capire meglio:

    Codice PHP:
    <?php
    $maxdim 
    31400000;

    if(isset(
    $_POST['submit']))
    {
        
        if(
    $_FILES['fileU']['tmp_name']=="" || $_FILES['fileU']['tmp_name']==" ") {
            
    $msg '<span style="color:red">Nessun file è stato trasferito! Selezionare un file!</span>';
        } else {
        
        if(!
    is_uploaded_file($_FILES['fileU']['tmp_name'])) {
            
    $msg '<span style="color:red">Seleziona un file esistente!</span>';
            
    unlink($_FILES['fileU']['tmp_name']); // Cancello
        
    } else {
                     ......

    Come faccio a passare tramite Ajax un file allo script php?

  2. #2
    Non ricordo bene la struttura dell'array passato in post quando si fa un upload di file ma sicuramente ti mancano dei dati...

    Tu popoli solo l'array $_POST non quello $_FILE ...

  3. #3
    si, infatti mi è venuto in mente appena mi sono disteso per dormire ieri notte...
    ci lavoro sopra e vi faccio sapere

  4. #4
    non riesco a venirne a galla.
    ho provato per assurdo a mettere una richiesta di questo tipo
    request.open("FILES", "post.php", true);
    ma non funziona.

    come si fà in Ajax a fargli prelevare un file?

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    http://www.google.it/search?q=upload...ient=firefox-a

    ci sono circa 3 milioni di risposte e una si troverà di certo : io non ho voglia di leggere però mi piacerebbe sapere, se dovessi risolvere, se la cosa si può fare.
    Pietro

  6. #6
    ho trovato 2 soluzioni al problema....entrambe funzionanti con qualche ma....

    la prima si tratta di utilizzare un iframe; soluzione che non ha niente a che fare con ajax.
    la seconda funziona esclusivamente con firefox..carina e interessante, ma richiede la configurazione del browser per un'impostazione di sicurezza.

    quindi, abbandono questa strada e adotto una mia terza soluzione.


  7. #7
    Originariamente inviato da devil89
    quindi, abbandono questa strada e adotto una mia terza soluzione.

    sarebbe?

  8. #8
    un pulsante che apre un finestra pop-up nella quale viene caricata la pagina di upload.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.