à l'aide de html5 pour l'upload de fichier avec l'ajax et jquery
Donc je suis en train d'essayer de télécharger une image avec les données du formulaire au serveur. Je suis en utilisant FileReader API pour convertir une image aux données et de les télécharger vers le serveur. Je suis en suivant le code similaire à HTML5 uploader à l'aide d'AJAX Jquery.
Les données sont converties en jquery, mais rien n'est envoyé au serveur et il n'y a pas d'erreur généré.
$('#formupload').on('submit', function(e){
e.preventDefault();
var hasError = false;
var file = document.getElementById('file').files[0];
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = shipOff;
function shipOff(event) {
result = new Image();
result.src = event.target.result;
var fileName = document.getElementById('file').files[0].name;
$.post('test.php', { data: result, name: fileName });
}
Code PHP
<?php
$data = $_POST['data'];
$fileName = $_POST['name'];
echo $fileName;
$fp = fopen('/uploads/'.$fileName,'w'); //Prepends timestamp to prevent overwriting
fwrite($fp, $data);
fclose($fp);
$returnData = array( "serverFile" => $fileName );
echo json_encode($returnData);
?>
Le problème est dû à de gros fichier image ou FileReader API?
OriginalL'auteur de-bugged | 2013-01-22
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr si le fichier de téléchargement fonctionne avec filereaders, mais il y a un autre moyen pour le faire fonctionner:
De cette façon, vous envoyer les données vers le fichier PHP et vous pouvez utiliser
$_FILES
à traiter. Malheureusement, cela ne fonctionne pas dans IE pour autant que je sais. Il pourrait y avoir des plugins disponibles qui rendent cela possible dans IE, mais je ne les connais pas.ce seront effectivement envoyer l'image et les données,
var formData = new FormData($('.file_upload_form')[0]);
va s'en assurer. Le formulaire peut contenir des téléchargements de fichiers et d'autres données en même temps et tout simplement de convertir normal$_POST
valeur. Si vous avez une saisie de texte avec le nomtext
, que l'on sera également accessible au sein de l'$_POST
.si cela vous a aidé, veuillez appuyer sur le bouton accepter à côté de cette réponse 🙂
Wow thnx, qui a travaillé parfait. 🙂
Vous méritez un + 1 000 000 000 d', sur ce.. à la recherche d'une inter-domaine de la solution qui serait de travailler toute la journée et le vôtre est le seul qui l'a fait. Merci!
OriginalL'auteur Deep Frozen