[英]sending local mp3 file to api server using jquery
我希望使用echoprint- http ://echoprint.me/start-它允许我在发布请求中从计算机本地发送mp3文件,并从其服务器返回一个json对象,其中包括歌曲的详细信息。
我试图使用jquery发出此发布请求,以便允许我检索包含歌曲详细信息的json对象,然后将其允许我在浏览器的控制台中查看。
echoprint网站-http: //developer.echonest.com/docs/v4/track.html-说明了如何使用curl发出此发布请求。 以下代码在命令行中有效。 这将返回一个json对象,但是会在终端中返回它。
curl -F "api_key=#############" -F "filetype=mp3" -F "track=@tambourineMan.mp3" "http://developer.echonest.com/api/v4/track/upload"
我已经阅读了curl文档http://curl.haxx.se/docs/httpscripting.html#POST,以尝试了解curl和jquery之间的相关性,但不幸的是,我在将两者与关联以及理解问题上遇到了困难- F表示。
我的目的是使用jquery发出此发布请求,这样我就可以进行与上述curl相同的请求,并在浏览器的控制台中检索json数据。
根据我在此处提出的上一个问题,我尝试采用该答案中的逻辑并使用了以下代码,但是这返回了一个错误,即文件无法编码。 我尝试了有没有指定内容类型的尝试,但是两种方法都失败了。
$.post("http://developer.echonest.com/api/v4/track/upload", {
"api_key":"##################",
"track":"@tambourineMan.mp3",
"filetype":"mp3",
"contentType:" "application/octet-stream"
},
function( data ) {
console.log(data)
},
"JSON" );
这里有http://developer.echonest.com/docs/v4/track.html上的说明,但是它们仅说明了如何使用curl进行此操作。 如果有人能对此有所启示,将不胜感激。 请原谅我的无知。
cURL使用@前缀表示“命名文件的内容”,在AJAX请求中,您将@tambourineMan.mp3
作为原义字符串发送。
一种简单的完成任务的方法是在文件中输入文件,并告诉jQuery使用该文件中的数据:
var file = document.getElementById('myFileInput').files[0];
$.post("http://developer.echonest.com/api/v4/track/upload", {
"api_key":"##################",
"track":file,
"filetype":"mp3",
"contentType:" "application/octet-stream"
});
看看的的FileReader API ,并在该文章关于发送和接收二进制数据XMLHttpRequest
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.