Czy istnieje parser multipart/form-data w C # - (Brak ASP)
Próbuję napisać Parser wieloczęściowy, ale sprawy się komplikują i chcę zapytać, czy ktoś zna gotowy parser w C#!
Żeby było jasne, piszę swój własny" malutki " serwer http i muszę pars multipart formularz-DANE też!
Z góry dzięki, Gohlool
5 answers
I open-sourced C# Http form parsertutaj .
Jest nieco bardziej elastyczny niż ten drugi, o którym mowa w CodePlex, ponieważ można go używać zarówno dla wieloczęściowych, jak i nie-wieloczęściowych form-data
, a także daje inne parametry formularza sformatowanego w obiekcie Dictionary
.
Można go użyć w następujący sposób:
Non-multipart
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"]);
}
}
Multipart
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);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-03 17:13:23
Miałem pewne problemy z parserem, które są oparte na parsowaniu łańcuchów, szczególnie w przypadku dużych plików, które stwierdziłem, że zabraknie mu pamięci i nie przetworzy danych binarnych.
Aby poradzić sobie z tymi problemami, otworzyłem własną próbę parsera C# multipart / form-data TUTAJ
Zobacz moją odpowiedź TUTAJ Aby uzyskać więcej informacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:14
Sprawdź nowy MultipartStreamProvider i jego podklasy (np. MultipartFormDataStreamProvider). Możesz również utworzyć własną implementację, jeśli żadna z wbudowanych implementacji nie jest odpowiednia dla Twojego przypadku użycia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-20 20:24:58
Z Core teraz masz dostęp do IFormCollection za pomocą HttpContext.Prośba.Forma.
Przykład zapisu obrazu:
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);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-19 23:51:21
Miałem podobny problem, który niedawno rozwiązałem dzięki Anthony ' emu w http://antscode.blogspot.com / dla parsera wieloczęściowego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:29:36