Je tente d'enregistrer de l'audio sur un iPhone en utilisant PhoneGap, puis envoyer cet audio à un serveur. J'utilise les API médias de PhoneGaps pour effectuer l'enregistrement, puis l'API de transfert de fichiers PhoneGap pour envoyer le fichier au serveur.PhoneGap .wav télécharger à partir d'un appareil iOS crée un fichier 0k sur le serveur
Je suis capable de faire l'enregistrement très bien, et le lire fonctionne parfaitement. Quand j'essaye de l'envoyer au serveur, cependant, l'enregistrement apparaît sur le serveur mais il indique que le dossier est 0k grand.
J'ai fait des recherches assez approfondies sur ce problème et trouvé d'autres personnes qui ont eu ce problème. Par exemple: https://groups.google.com/forum/#!topic/phonegap/zjzSs6JVokE
function win(r) {
alert("Code = " + r.responseCode);
alert("Response = " + r.response);
alert("Sent = " + r.bytesSent);
}
function fail(error) {
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
function upLoad() {
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=myPath.substr(myPath.lastIndexOf('/')+1);
options.mimeType="audio/wav";
var params = new Object();
var headers={'headerParam':'headerValue'};
options.headers = headers;
options.chunkedMode = false;
var ft = new FileTransfer();
ft.upload(encodeURI(myPath), encodeURI("http://myserver.com/upload.php"), win, fail, options);
}
Voici le code du côté serveur:
print_r($_FILES);
$new_image_name = "testFile.wav";
move_uploaded_file($_FILES["file"]["tmp_name"], "/var/www/wwwroot/recordings/".$new_image_name);
Je pense que cela peut être un problème avec le fait que je vous envoie des fichiers .wav. Lorsque j'envoie le fichier, r.bytesSent affiche généralement environ 200 à 400 octets (quelle que soit la taille du fichier), il semble donc que le contenu du fichier ne soit pas envoyé.
J'ai testé le code ci-dessus avec un simple fichier texte et ça passe très bien, donc je ne pense pas que ce soit un problème de permissions ou de syntaxe. Je n'ai pas essayé cela avec des fichiers image, mais je ne peux pas imaginer que cela fasse une grande différence sur ce que j'envoie.
Quelqu'un at-il fait cela avec succès?
J'ai essayé de renommer le fichier somefile.wav à Somefile.txt ou tout simplement somefile. Cela n'a pas fonctionné, le fichier est toujours de taille 0 sur le serveur. J'ai testé avec txt, jpg et ça marche. –