Есть ли какой-либо многокартский / форм-анализатор данных в C # - (нет ASP)

StackOverflow https://stackoverflow.com/questions/3880530

  •  28-09-2019
  •  | 
  •  

Вопрос

Я просто пытаюсь написать мультипартный парсер, но все осложненные и хотят спросить, знает ли кто-нибудь из готового парсера в C #!

Просто чтобы сделать ясно, я пишу свой собственный «крошечный» HTTP-сервер и надо аналорировать разворотный форма данные тоже!

Заранее спасибо, gohlool

Это было полезно?

Решение

Я открытый анализатор формата C # # здесь.

Это немного более гибкое, чем упомянутое другое, которое находится на CODEPLEX, так как вы можете использовать его для умноченного, так и для неискратки form-data, а также дает вам другие параметры формы, отформатированные в Dictionary объект.

Это можно использовать следующим образом:

неразрушанный

public void Login(Stream stream)
{
    string username = null;
    string password = null;

    HttpContentParser parser = new HttpContentParser(stream);
    if (parser.Success)
    {
        username = HttpUtility.UrlDecode(parser.Parameters["username"]);
        password = HttpUtility.UrlDecode(parser.Parameters["password"]);
    }
}

мультипликатор

public void Upload(Stream stream)
{
    HttpMultipartParser parser = new HttpMultipartParser(stream, "image");

    if (parser.Success)
    {
        string user = HttpUtility.UrlDecode(parser.Parameters["user"]);
        string title = HttpUtility.UrlDecode(parser.Parameters["title"]);

        // Save the file somewhere
        File.WriteAllBytes(FILE_PATH + title + FILE_EXT, parser.FileContents);
    }
}

Другие советы

У меня были некоторые проблемы с анализатором, которые основаны на разборе String, особенно с большими файлами, которые я обнаружил, что он будет выходить из памяти и не удается разбирать двоичные данные.

Чтобы справиться с этими проблемами, я открывающую поставленную мою собственную попытку аналонтонного / формованного анализатора C # здесь

Смотри мой ответ здесь за дополнительной информацией.

Ознакомьтесь с новым многокартеромпроводом и его подклассами (т.е. многопартный форматрампровидер). Вы также можете создать свою собственную реализацию, если ни один из встроенных реализаций подходит для вас, использует случай.

С ядром теперь у вас есть доступ к IFORMCOLLECT, с помощью httpcontext.request.form.

Пример сохранения изображения:

        Microsoft.AspNetCore.Http.IFormCollection form;
        form = ControllerContext.HttpContext.Request.Form; 

        using (var fileStream = System.IO.File.Create(strFile))
        {
            form.Files[0].OpenReadStream().Seek(0, System.IO.SeekOrigin.Begin);
            form.Files[0].OpenReadStream().CopyTo(fileStream);
        }

У меня была похожая проблема, которую я недавно решил благодаря Энтони в http://antscode.blogspot.com/ для многопартного анализатора.

Загрузка файла из Flex в WCF Rest Stream (как декодировать Multipart Form Post в покое WS)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top