繁体   English   中英

使用jQuery将本地MP3文件发送到API服务器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM