2009-08-17 8 views
1

Je veux envoyer dynamiquement un formulaire de téléchargement à CI via jQuery. Le formulaire doit contenir le fichier à télécharger et le chemin vers lequel enregistrer.AJAX téléchargement avec PHP et Javascript

Jusqu'à présent, mon AJAX appel ressemble à ceci:

file = $('#file').val(); 
path = active_dir; 

upload_file(file, path); 

function upload_file(file, path) { 
    $.post("/upload_file/", { file: file, path: path }, function(data) { 
    notice(data); 
    }); 
} 

Le PHP côté du script est testé et OK. Et le chemin est traité comme il se doit. Mais je reçois un message d'erreur de PHP qui dit que "Aucun fichier n'a été sélectionné.".

Comment puis-je récupérer les données de fichier à partir du formulaire?

Merci, Christoffer

Répondre

1

Vous publiez la valeur du champ de fichier uniquement (si vous l'alerter, il est juste le nom de fichier), et non le fichier lui-même, si tableau de PHP $_FILES ne reçoit pas renseigné avec le données de fichier réelles.

Pour démontrer, essayez ceci:

$(document).ready(function($) { 
    $('#myFile').change(function() { 
     alert($(this).val()); //will alert the filename 
    }); 
}); 

Si vous voulez vous débarrasser des maux de tête de téléchargement de fichiers ajax, un coup d'oeil à j Query Form Plugin et vérifier la ajax upload code samples.

+0

Il n'y a donc pas de moyen simple d'envoyer le fichier via un petit javascript? Je vais regarder quelques plugins alors. –

+0

@Christoffer - non, il n'y a pas vraiment. Je suggère d'utiliser un plugin comme celui que j'ai déjà suggéré. Il a des exemples d'utilisation complets, vous devriez probablement les vérifier. – karim79