jQuery FormData POST - chargement de fichier

Je suis en train d'essayer de soumettre un formulaire complet pour le traitement côté serveur à l'aide de jQuery. Le formulaire contient divers domaines, y compris le chargement d'un fichier option. Je suis en train d'utiliser FormData pour cela que je n'ai pas de soins sur les navigateurs qui ne supportent pas le moment.

J'ai le texte suivant (simplifié) de jQuery code:

$("#create_event_form").submit(function(event) {
event.preventDefault();
var formData = new FormData($(this));
$.post(
"create_entity.php",
{ formData: formData },
function(data) {
var response = jQuery.parseJSON(data);
if(response.code == "success") {
alert("Success!");
} else if(response.code == "failure") {
alert(response.err);
}
}
);
});

Et de mon côté serveur se présente comme suit:

<?php
require_once('includes/database.php');
$dbh = db_connect();
$response = array();
if($_SERVER['REQUEST_METHOD'] == "POST") {
//do some other stuff...       
//upload entity picture and update database
$url = $_FILES['entity_pic']['name'];
if($url != "") {
if($type == "user") {
$pic_loc = "images/profiles/";
} else if($type == "chapter") {
$pic_loc = "images/chapters/";
} else if($type == "group") {
$pic_loc = "images/groups/";
} else if($type == "event") {
$pic_loc = "images/events/";
}
//upload the picture if it's not already uploaded
if(!file_exists($pic_loc . $_FILES['entity_pic']['name'])) {
move_uploaded_file($_FILES['entity_pic']['tmp_name'], $pic_loc . $url);
}
$image_query = "INSERT INTO image (entity_id, url, type) VALUES (:entity_id, :url, :type);";
$image_query_stmt = $dbh->prepare($image_query);
$image_query_stmt->bindParam(":entity_id", $entity_id);
$image_query_stmt->bindParam(":url", $url);
$image_query_stmt->bindValue(":type", $type);
if(!$image_query_stmt->execute()) {
die(print_r($image_query_stmt->errorInfo()));
}
}
echo json_encode($response);
}

?>

Et HTML:

<form id="create_event_form" action="create_entity.php" method="POST" enctype='multipart/form-data'>
<input type="file" name="entity_pic" value="Insert Photo" />
<!-- other inputs -->
</form>

Droit maintenant, je reçois un Illégales invocation d'erreur, sans doute sur mon initialisation de mon objet FormData. J'ai été toujours à la recherche d'exemple de la façon de le faire avec jQuery et je viens vide. Aussi, je tiens à préciser que mon côté serveur code du travail. Lorsque je passe le formData "formData" à mon script PHP, comment puis-je accéder aux champs-t-il? Serait-il "$_POST['formData']['nom_champ']" ou juste $_POST['nom_champ'] ou tout autre chose?

Merci pour toute aide.

Similaire à this DONC, la question peut-être?
Le seul problème est que j'ai une tonne d'autres valeurs dans la forme que je veux présenter. Dois-je faire un ajout de la mention pour chacun? J'avais espéré que j'ai pu initialiser l'objet FormData avec une forme de référence...
Aussi, j'ai besoin d'aide pour comprendre comment le processus de l'soumis objet FormData dans mon code côté serveur

OriginalL'auteur Jon Rubins | 2012-12-06