Also habe ich versucht, eine Audiodatei über einen $ http-Dienst mit FormData zu senden, und bis jetzt, was ich versucht habe, die Datei zu senden, hat noch nicht funktioniert.
Dies ist, wie der Dienst wie folgt aussieht:
songs_services.add_new_song = function(new_song_name, new_song_artist, song) {
var fd = new FormData();
fd.append("new_song_name", new_song_name);
fd.append("new_song_artist", new_song_artist);
fd.append("song", song);
console.log(fd.get("new_song_name"));
console.log(fd.get("new_song_artist"));
console.log(fd.get("song"));
return $http.post(BACKEND_PREFIX + "add_new_song", fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).then(function() {
}, function() {
});
};
ich sicherstellen wollte, dass die Informationen tatsächlich an meine Formdata angehängt worden ist, und das ist, was ich in der Konsole:
So jetzt weiß ich, dass die FormData tatsächlich die Informationen, die ich brauche.
Ich habe auch versucht, den Content-Type zu multipart/form-Daten ohne Erfolg auch zu ändern.
Ich bin auch CakePHP 2 als mein Backend verwenden, so ist dies, wie ich versuche, die Informationen zu bekommen:
public function add_new_song() {
$this->autoRender = false;
$data = json_decode(file_get_contents("php://input"));
print_r($data);
print_r($_POST);
print_r($_FILES);
$new_song_name = $_POST["new_song_name"];
$new_song_artist = $_POST["new_song_artist"];
$song = $_FILES;
echo $new_song_name;
echo "<br />";
echo $new_song_artist;
echo "<br />";
print_r($song);
die();
}
Aber Echo der Variablen zeigen nur leere Arrays und ich bekomme auch einen undefinierten Index Fehler beim Versuch, auf die Variablen von $ _POST zuzugreifen.
Gibt es eine spezielle Möglichkeit, die Audiodatei über $ http zu senden? Ich habe wirklich das Gefühl, dass mir ein kleines Detail fehlt.
Ich habe versucht, ein Bild hochzuladen mit dem gleichen Code und ich etwas in CakePHP bekommen. Das Problem scheint nur bei Audiodateien zu liegen. –