как asp.net mvc3 может получить файл mp3, отправленный с помощью flash (application / x-amf) - PullRequest
0 голосов
/ 16 января 2012

когда я использую Request.InputStream в методе действия MVC3 для сохранения файла, отправленного сценарием действия, я получил поврежденный файл.Когда я использовал firebug для отслеживания запроса, я понял, что Content-type имеет тип "application / x-amf" и имеет имя файла в конце потока.зная, что я не могу изменить скрипт действия, мне нужен способ правильно сохранить файл на диск.

Ответы [ 2 ]

0 голосов
/ 23 января 2012

Просто чтобы сэкономить время, я зашифровал байтовый массив в строку base64 и отправил его на сервер. Затем расшифровал его на стороне сервера и сохранил файл. Пока работает нормально.

0 голосов
/ 16 января 2012

Вы можете справиться с этим так же, как я это делаю в проекте VoiceModel , когда 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 - это проект с открытым исходным кодом, и вы можете загрузить код и примеры на CodePlex . «Пример записи» показывает, как использовать эту функцию.

...