Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net mvc3如何接收flash发送的mp3文件(应用程序/x-amf)_Flash_Asp.net Mvc 3_Actionscript_Amf - Fatal编程技术网

asp.net mvc3如何接收flash发送的mp3文件(应用程序/x-amf)

asp.net mvc3如何接收flash发送的mp3文件(应用程序/x-amf),flash,asp.net-mvc-3,actionscript,amf,Flash,Asp.net Mvc 3,Actionscript,Amf,当我在MVC3操作方法中使用Request.InputStream保存操作脚本发送的文件时,我得到了一个损坏的文件。当我使用firebug跟踪请求时,我意识到内容类型是application/x-amf,并且文件名位于流的末尾。知道我无法更改操作脚本,我需要一种将文件正确保存到磁盘的方法。当IVR在POST中发送音频文件时,您可以使用与我在中相同的方法来处理它。以下是控制器中使用的代码 [HttpPost] public ActionResult SaveRecording(Ht

当我在MVC3操作方法中使用Request.InputStream保存操作脚本发送的文件时,我得到了一个损坏的文件。当我使用firebug跟踪请求时,我意识到内容类型是application/x-amf,并且文件名位于流的末尾。知道我无法更改操作脚本,我需要一种将文件正确保存到磁盘的方法。

当IVR在POST中发送音频文件时,您可以使用与我在中相同的方法来处理它。以下是控制器中使用的代码

    [HttpPost]
    public ActionResult SaveRecording(HttpPostedFileBase CallersMessage)
    {
        if (CallersMessage != null && CallersMessage.ContentLength > 0)
        {
            // extract only the fielname
            var fileName = Path.GetFileName(CallersMessage.FileName);
            // store the file inside ~/App_Data/uploads folder
            var path = Path.Combine(Server.MapPath(recordingPath), fileName);
            CallersMessage.SaveAs(path);
        }

        string vm_id = Request.QueryString["vm_id"];
        string vm_event = Request.QueryString["vm_event"];
        string vm_result = "";
        return VoiceView(vm_id, vm_event, vm_result);
    }

VoiceModel是一个开源项目,您可以在上下载代码和示例。录制示例演示了如何使用此功能。

为了节省时间,我将字节数组编码为base64字符串,并将其发送到服务器。然后在服务器端解码并保存文件。它现在可以正常工作。

AMF!=MP3。您收到的是一个,不是MP3文件。我遇到了fluorinefx,但我需要一个示例,说明如何使用它在服务器端保存发送的文件感谢您的响应,但当我将HttpPostedFileBase作为操作方法的参数时,它的计算结果为null。获取字节数组的唯一方法是使用Request.InputStream。如果只使用变量名CallersMessage,它将不匹配。变量名需要与包含音频文件的帖子中的项目名匹配。你可以使用类似Fiddler的东西来查看POST消息中Flash发送的内容。