Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    6

    file upload con php da javascript

    salve a tutti, di nuovo a rompere le scatole xD
    sto lavorando ad un file php che prende oggetto (mp3 o mp4) da filetransfer con javascript (cordova)
    ho utilizzato qualche plugin e sono riuscito a far selezionare il file all'utente e controllato la variabile contenente URI, stampandola con console e fino a qui non credo di aver problemi..

    codice:
    $("#provaFile").on("click", function (e) { //inizio al click	    e.preventDefault(); 
    	    var URI;
    
    
            //funzione navigator per prendere i file dalla memoria del telefono
    	    navigator.camera.getPicture(successFn, errorFn, {
    	        quality: 50,
    	        destinationType:navigator.camera.DestinationType.DATA_URI,
    	        sourceType:2,
    	        mediaType: 2
    	    });     //fine navigator.camera
            
            //funzione success della selezione media
    	    function successFn(imageURI) {
    	        console.log("file preso");
    	        var src = imageURI;
    	        sorgente = imageURI;
    	        console.log(src);
    
    
    	        FT = new FileTransfer();     // oggetto file transfer
    	        opzioni = new FileUploadOptions();
    	        opzioni.fileKey = "media";
    	        opzioni.fileName = sorgente.substr(sorgente.lastIndexOf('/') + 1);
    	        opzioni.chunkedMode = true;
    	        opzioni.mimeType = "image/jpeg";  // video / mp4
    
    
    	        console.log(opzioni.fileKey);
    	        console.log(opzioni.fileName);
    
    
    	        FT.upload(imageURI, encodeURI("http://localhost:8080/getData.php"), fileCaricato, erroreFile, opzioni);
    	       
                
                // mostro percentuale caricamento
    	        FT.onprogress = function (pEvent) {
    	            if (pEvent.lengthComputable) {
    	                var perc = Math.floor(pEvent.loaded / pEvent.total * 100);
    	                $("#uploadStatus").html(perc + " % caricato");
    	            } else {
    	                $("#uploadStatus").html("in caricamento");
    	            }
    	        }           //fine funzione onprogress
    	    }       //fine funzione success
    
    
            //funzione errore nella selezione file
    	    function errorFn() {
    	        console.log("errore selezione file");
    	    }
    
    
            //funzione in caso di file caricato correttamente
    	    function fileCaricato(fresult) {
    	        console.log("file caricato correttamente");
    	    }
    
    
            //funzione in caso di errore
    	    function erroreFile(ftransfer) {
    	        console.log("errore nell'inviare il file");
    	    }
    
    
    	});   //fine file chooser
    come vi dicevo, sono arrivato a stampare il file URI correttamente.. non riesco a gestirlo con php invece :

    Codice PHP:
    <?php                        $target_dir "uploads/";$info $_FILES['opzioni.fileName'];move_uploaded_file($info$target_dir);

    ?>
    ho provato con una cosa semplice e con altri metodi cercati in rete ma senza alcun successo..
    qualche consiglio ?

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    Hai verificato se i parametri di move_uploaded_file() che utilizzi sono corretti e che tale funzione richieda quei parametri?

    L'array $_FILES contiene i dati che ti aspetti?
    eXvision

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Concordo con brodik, leggi la documentazione di move_uploaded_file(), ti accorgerai che i parametri che gli passi sono sbagliati.
    Leggi anche qualche esempio, basta anche solo il primo, per capire meglio cosa devi passargli.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    6
    si, immaginavo di sbagliare li, anche perchè i dati inviati con filetransfer dovrebbero esser giusti, quindi devo lavorare su php.
    intanto vi ringrazio per le risposte

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2016
    Messaggi
    6

    ok scusate ma non ci sto capendo niente..

    lanciandolo sull'emulatore , riesco a prendere il file .img ad esempio, mi stampa URI e nome tranquillamente

    codice:
     
     // AVVIO IL SERVIZIO PER UPLOAD VIDEO E MUSICA
    	document.addEventListener("deviceready", onDeviceReady, false);
    	function onDeviceReady() {
    	    pictureSource = navigator.camera.PictureSourceType;
    	    destinationType = navigator.camera.DestinationType;
    	    mediaType = navigator.camera.MediaType;
    	    Camera.MediaType = {
    	        PICTURE: 0,             // allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType
    	        VIDEO: 1,               // allow selection of video only, WILL ALWAYS RETURN FILE_URI
    	        ALLMEDIA: 2            // allow selection from all media types
    	    }
    	    var options = { quality: 80 };
    	    options["sourceType"] =2;
    	    options["mediaType"] = 2;
    	}
    
    
        //filechooser
    	$("#provaFile").on("click", function (e) { //inizio al click
    	    e.preventDefault();  //cancello operazione refresh
    	    var URI;
    
    
            //funzione navigator per prendere i file dalla memoria del telefono
    	    navigator.camera.getPicture(successFn, errorFn, {
    	        quality: 50,
    	        destinationType:navigator.camera.DestinationType.DATA_URI,
    	        sourceType:2,
    	        mediaType: 2
    	    });     //fine navigator.camera
            
            //funzione success della selezione media
    	    function successFn(imageURI) {
    	        console.log("file preso");
    	        var src = imageURI;
    	        sorgente = imageURI;
    	        console.log(src);
    
    
    	        FT = new FileTransfer();     // oggetto file transfer
    	        opzioni = new FileUploadOptions();
    	        opzioni.fileKey = "media";
    	        opzioni.fileName = sorgente.substr(sorgente.lastIndexOf('/') + 1);
    	        opzioni.chunkedMode = true;
    	        opzioni.mimeType = "image/jpeg";  // video / mp4
    
    
    	        console.log(opzioni.fileKey);
    	        console.log(opzioni.fileName);
    
    
    	        FT.upload(imageURI, encodeURI(miosito/provafile.php"), fileCaricato, erroreFile, opzioni);
    	       
                
                // mostro percentuale caricamento
    	        FT.onprogress = function (pEvent) {
    	            if (pEvent.lengthComputable) {
    	                var perc = Math.floor(pEvent.loaded / pEvent.total * 100);
    	                $("#uploadStatus").html(perc + " % caricato");
    	            } else {
    	                $("#uploadStatus").html("in caricamento");
    	            }
    	        }           //fine funzione onprogress
    	    }       //fine funzione success
    
    
            //funzione errore nella selezione file
    	    function errorFn() {
    	        console.log("errore selezione file");
    	    }
    
    
            //funzione in caso di file caricato correttamente
    	    function fileCaricato(fresult) {
    	        console.log("file caricato correttamente");
    	    }
    
    
            //funzione in caso di errore
    	    function erroreFile(ftransfer) {
    	        console.log("errore nell'inviare il file");
    	    }
    
    
    	});   //fine file chooser
    sul lato php ho
    Codice PHP:
    header("Access-Control-Allow-Origin: *"); $uploads_dir '/web/htdocs/www.nisomusic.it/home/appnisom/musica'$name =$_FILES['opzioni']['fileName'];     if (move_uploaded_file($_FILES['opzioni']['fileName'], "$uploads_dir/$name")) {        print "Received {$_FILES['userfile']['name']} - its size is {$_FILES['userfile']['size']}";    } else {        print "Upload failed!";    } 
    controllando nella console dell'emulatore, mi vedo ritornare, file caricato correttamente.
    andando sul server , nella cartella il file non c'�.
    entrando nel file dal browser invece mi da upload failed, poich� non ho inserito nessun, file giusto ?
    non capisco dove continuo a sbagliare

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova a stampare
    print_r($_FILES)

    che cosa stampa?

Tag per questa discussione

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.