servicestack,Csv,servicestack" /> servicestack,Csv,servicestack" />

什么';将csv文件上载到ServiceStack并解析它的最快方法是什么?

什么';将csv文件上载到ServiceStack并解析它的最快方法是什么?,csv,servicestack,Csv,servicestack,看起来很简单,但我在ServiceStack中没有看到任何测试集中在上传方面,一切似乎都集中在将文件流式传输到浏览器上。我并不担心会使用它的各种客户机,它都在一个受控的环境中,所以这看起来很有趣。在哪里可以找到有关在ServiceStack中上载大型csv文件,然后在我的服务中使用该文件(即将数据获取到数据库)的更多信息 当然,在挖掘了更多的东西之后,我确实看到了上传测试,但这些测试似乎集中在将文件保存到磁盘上,这是唯一可用的选项,我希望以这种方式将文件流到内存并解析文件 谢谢,, Stephe

看起来很简单,但我在ServiceStack中没有看到任何测试集中在上传方面,一切似乎都集中在将文件流式传输到浏览器上。我并不担心会使用它的各种客户机,它都在一个受控的环境中,所以这看起来很有趣。在哪里可以找到有关在ServiceStack中上载大型csv文件,然后在我的服务中使用该文件(即将数据获取到数据库)的更多信息

当然,在挖掘了更多的东西之后,我确实看到了上传测试,但这些测试似乎集中在将文件保存到磁盘上,这是唯一可用的选项,我希望以这种方式将文件流到内存并解析文件

谢谢,,
Stephen

一种方法是在HttpBenchmarks示例项目中,该项目将Apache基准反序列化为类型化POCO,支持上载多个单独的文件以及压缩在
.zip
文件中的多个文件:

public object Post(UploadTestResults request)
{
    foreach (var httpFile in base.Request.Files)
    {
        if (httpFile.FileName.ToLower().EndsWith(".zip"))
        {
            // Expands .zip files
            using (var zip = ZipFile.Read(httpFile.InputStream))
            {
                var zipResults = new List<TestResult>();
                foreach (var zipEntry in zip)
                {
                    using (var ms = new MemoryStream())
                    {
                        zipEntry.Extract(ms);
                        var bytes = ms.ToArray();
                        zipResults.Add(new MemoryStream(bytes).ToTestResult());
                    }
                }
                newResults.AddRange(zipResults);
            }
        }
        else
        {
            // Converts
            var result = httpFile.InputStream.ToTestResult();
            newResults.Add(result);
        }
    }
    ...
}
public object Post(上传测试结果请求)
{
foreach(base.Request.Files中的var httpFile)
{
if(httpFile.FileName.ToLower().EndsWith(“.zip”))
{
//展开.zip文件
使用(var zip=ZipFile.Read(httpFile.InputStream))
{
var zipResults=新列表();
foreach(拉链中的var zipEntry)
{
使用(var ms=new MemoryStream())
{
紫丁香提取物(ms);
var bytes=ms.ToArray();
添加(新内存流(字节).ToTestResult());
}
}
newResults.AddRange(zipResults);
}
}
其他的
{
//皈依
var result=httpFile.InputStream.ToTestResult();
newResults.Add(结果);
}
}
...
}
在本例中,您将更改为将CSV流反序列化为类型化POCO

ServiceStack本身没有内置的CSV反序列化程序,因此您需要查找.NET CSV反序列化程序库或手动解析上载的CSV文件


一种方法是在HttpBenchmarks示例项目中,该项目将Apache基准反序列化为类型化POCO,该POCO支持上载多个单独的文件以及在
.zip
文件中压缩的多个文件:

public object Post(UploadTestResults request)
{
    foreach (var httpFile in base.Request.Files)
    {
        if (httpFile.FileName.ToLower().EndsWith(".zip"))
        {
            // Expands .zip files
            using (var zip = ZipFile.Read(httpFile.InputStream))
            {
                var zipResults = new List<TestResult>();
                foreach (var zipEntry in zip)
                {
                    using (var ms = new MemoryStream())
                    {
                        zipEntry.Extract(ms);
                        var bytes = ms.ToArray();
                        zipResults.Add(new MemoryStream(bytes).ToTestResult());
                    }
                }
                newResults.AddRange(zipResults);
            }
        }
        else
        {
            // Converts
            var result = httpFile.InputStream.ToTestResult();
            newResults.Add(result);
        }
    }
    ...
}
public object Post(上传测试结果请求)
{
foreach(base.Request.Files中的var httpFile)
{
if(httpFile.FileName.ToLower().EndsWith(“.zip”))
{
//展开.zip文件
使用(var zip=ZipFile.Read(httpFile.InputStream))
{
var zipResults=新列表();
foreach(拉链中的var zipEntry)
{
使用(var ms=new MemoryStream())
{
紫丁香提取物(ms);
var bytes=ms.ToArray();
添加(新内存流(字节).ToTestResult());
}
}
newResults.AddRange(zipResults);
}
}
其他的
{
//皈依
var result=httpFile.InputStream.ToTestResult();
newResults.Add(结果);
}
}
...
}
在本例中,您将更改为将CSV流反序列化为类型化POCO

ServiceStack本身没有内置的CSV反序列化程序,因此您需要查找.NET CSV反序列化程序库或手动解析上载的CSV文件


一种方法是在HttpBenchmarks示例项目中,该项目将Apache基准反序列化为类型化POCO,该POCO支持上载多个单独的文件以及在
.zip
文件中压缩的多个文件:

public object Post(UploadTestResults request)
{
    foreach (var httpFile in base.Request.Files)
    {
        if (httpFile.FileName.ToLower().EndsWith(".zip"))
        {
            // Expands .zip files
            using (var zip = ZipFile.Read(httpFile.InputStream))
            {
                var zipResults = new List<TestResult>();
                foreach (var zipEntry in zip)
                {
                    using (var ms = new MemoryStream())
                    {
                        zipEntry.Extract(ms);
                        var bytes = ms.ToArray();
                        zipResults.Add(new MemoryStream(bytes).ToTestResult());
                    }
                }
                newResults.AddRange(zipResults);
            }
        }
        else
        {
            // Converts
            var result = httpFile.InputStream.ToTestResult();
            newResults.Add(result);
        }
    }
    ...
}
public object Post(上传测试结果请求)
{
foreach(base.Request.Files中的var httpFile)
{
if(httpFile.FileName.ToLower().EndsWith(“.zip”))
{
//展开.zip文件
使用(var zip=ZipFile.Read(httpFile.InputStream))
{
var zipResults=新列表();
foreach(拉链中的var zipEntry)
{
使用(var ms=new MemoryStream())
{
紫丁香提取物(ms);
var bytes=ms.ToArray();
添加(新内存流(字节).ToTestResult());
}
}
newResults.AddRange(zipResults);
}
}
其他的
{
//皈依
var result=httpFile.InputStream.ToTestResult();
newResults.Add(结果);
}
}
...
}
在本例中,您将更改为将CSV流反序列化为类型化POCO

ServiceStack本身没有内置的CSV反序列化程序,因此您需要查找.NET CSV反序列化程序库或手动解析上载的CSV文件


一种方法是在HttpBenchmarks示例项目中,该项目将Apache基准反序列化为类型化POCO,该POCO支持上载多个单独的文件以及在
.zip
文件中压缩的多个文件:

public object Post(UploadTestResults request)
{
    foreach (var httpFile in base.Request.Files)
    {
        if (httpFile.FileName.ToLower().EndsWith(".zip"))
        {
            // Expands .zip files
            using (var zip = ZipFile.Read(httpFile.InputStream))
            {
                var zipResults = new List<TestResult>();
                foreach (var zipEntry in zip)
                {
                    using (var ms = new MemoryStream())
                    {
                        zipEntry.Extract(ms);
                        var bytes = ms.ToArray();
                        zipResults.Add(new MemoryStream(bytes).ToTestResult());
                    }
                }
                newResults.AddRange(zipResults);
            }
        }
        else
        {
            // Converts
            var result = httpFile.InputStream.ToTestResult();
            newResults.Add(result);
        }
    }
    ...
}
public object Post(上传测试结果请求)
{
foreach(base.Request.Files中的var httpFile)
{
if(httpFile.FileName.ToLower().EndsWith(“.zip”))
{
//展开.zip文件
使用(var zip=ZipFile.Read(httpFile.InputStream))
{
var zipResults=新列表();
foreach(拉链中的var zipEntry)
{
使用(var ms=new MemoryStream())
{
紫丁香提取物(ms);
var bytes=ms.ToArray();
Zippresults.A