Scusa, ma hai controllato cosa viene passato allo script php?
Prima che la chiamata ajax parta, qual è il valore della variabile "upfile" ?
Guarda con firebug sul pannello net e guarda sulla request cosa esattamente viene passato in post
Inoltre se la cartella "allegati" è pubblica (senza se : deve esserlo, altrimenti non riusciresti a cercare in una sottocartella a partire dalla cartella in cui si trova questo script), penso che tu stia creando più complessità di quella necessaria. Se vuoi semplicemente sapere se esiste o meno un file sotto quella cartella ti basta fare una chiamata HEAD al file stesso:
codice:
function controllaFile(){
//recupero il nome del file
var upfile = "allegati/" + document.getElementById("upfile").files[0].name;
alert('cerco il file ' + upfile);
$.ajax({
type: "HEAD",
url: upfile,
success: function() {
alert('il file esiste');
},
error: function() {
alert('il file non esiste');
}
})
};
prova questo codice e se non funziona posta esattamente il messaggio d'errore, le info dettagliate sulla request e sulla response