upload immagini tramite ajax

processore

Utente Attivo
11 Ott 2012
51
0
0
salve.
ho un problema che mi sta scoppiando la testa e non riesco a trovare una soluzione.

il mio problema è come si fa a fare l'upload di una foto tramite ajax ?
inviare dei dati da un form sono riuscito, ma quando devo inviare una foto non funziona.


poi ho trovato questo script ma lo stesso non invia la foto.

Codice:
<section id='main'>
				<div id='thumb'></div>
				<div id='upload'>
					<form id="ft">
                    <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>


Codice:
$(function () {
	$("#select").click(
		function () {
			$("#file").get(0).click();
			return false;
		}
	);
	
	$("#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();
					$("#p").append('<input type="hidden" value="' + resp.name + '" name="foto1">');
					
					$("#progressbar").attr({value: "0", max: "100"});
				}
			);
		}
	);
});


cosa c'è di sbagliato ?

grazie a tutti
 
grazie per l'aiuto.
a me servirebbe dare la possibilita di caricare solo da 1 a 4 immagini.
poi dopo che carico le immagini la risposta ajax mi deve tornare il nome dell'immagine perche devo inserire il nomi dell'immagini associato a altri dati.

non so se mi sono spiegato bene
 
c'è la possibilita di impostarlo per ricevere solo immagini ?
dato che ho visto che si possono inviare anche video documenti ecc ?
quali file devo usare per usarlo nel mio sito ?
ci sono moltissimi file e non so quali sono utili .

grazie
 
Ci sono più possibilità di avere interfacce personalizzate, il file html nella root principale lo scegli quello che più di piace, ad esempio: jquery-ui.html tutto il resto puoi cancellarlo, le caertelle da mantenere sono: cors, css, img, js, server.
per configurare l'estensione dei file accettati devi vedere il file UploadHandler.php in server -> php ora non posso dirti non posso visualizzarlo... dacci un occhio.
 
ciao sto impazzendo ad usare /blueimp.github.io/jQuery-File-Upload.
ci sono moltissimi file, la documentazione è fatta malissima.
mi potresti dare una mano ?
quello che vorrei fare io è inserire massimo 4 foto (solo foto niente video o audio).
e una volta che carica la foto mi deve ritornare il nome dell'immagine.
tutto qui
 
Ciao,
purtroppo non posso esserti molto utile... personalmente ho fatto qualche modifica ma non saprei come fare per la tua richiesta!
Comunque invece di "infognarti" perchè non utilizzi un semplice upload, visto sono solo 4 foto e i controlli li fai con php?
 
Se vuoi, ho progettato un sistema di upload per un sito che sto facendo che gestisce le estensioni file il numero di file caricati l'anteprima del file da caricare le miniature dei file caricati ed altro... qui uno screenshot:
Ovviamente questo l'ho progettato per le mie esigenze...
Upload.JPG
 
Ultima modifica:

Discussioni simili