C# Tusdotnet上载和下载文件.Net核心

C# Tusdotnet上载和下载文件.Net核心,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,Tusdotnet是为使用.NET核心实现的文件上载而构建的,这些实现的大小更大(如果它被卡住,将从同一点恢复) 用于上载文件的ASP.NET核心实现: app.UseTus(httpContext=>newdefaulttus配置 { //c:\t文件是存储文件的地方 Store=新的TusDiskStore(@“C:\tusfiles\”), //我们应该在哪个url上监听上传? UrlPath=“/files”, 事件=新事件 { //OnFileCompleteAsync=eventC

Tusdotnet是为使用.NET核心实现的文件上载而构建的,这些实现的大小更大(如果它被卡住,将从同一点恢复)

  • 用于上载文件的ASP.NET核心实现:
    app.UseTus(httpContext=>newdefaulttus配置
    {
    //c:\t文件是存储文件的地方
    Store=新的TusDiskStore(@“C:\tusfiles\”),
    //我们应该在哪个url上监听上传?
    UrlPath=“/files”,
    事件=新事件
    {
    //OnFileCompleteAsync=eventContext=>
    OnFileCompleteAsync=async eventContext=>
    {
    //返回Task.CompletedTask;
    ITusFile file=await eventContext.GetFileAsync();
    如果(文件!=null)
    {
    //转换为文件流
    //var fileStream=await file.GetContentAsync(httpContext.RequestAborted);
    }
    }
    }
    
    }
    使用Tusdotnet进行调查后,我发现只有两种选择:

    第一种方法

    在文件夹系统中成功上载文件时重命名文件。(因为tusdotnet在成功上载文件时不维护文件扩展名。)。

    第二种方法

    当tusdotnet成功上传您的文件时,请同时使用以下代码上传扩展名相同的文件:

    OnFileCompleteAsync = async eventContext =>
    {    
        ITusFile file = await eventContext.GetFileAsync();
        if (file != null)
        {
            var fileStream = await file.GetContentAsync(httpContext.RequestAborted);
            var metadata = await file.GetMetadataAsync(httpContext.RequestAborted);
        
            httpContext.Response.ContentType = metadata.ContainsKey("contentType")
                                             ? metadata["contentType"].GetString(Encoding.UTF8)
                                             : "application/octet-stream";
        
            //Providing New File name with extension
            string name = "NewFileName.jpg";
            string networkPath = @"C:\tusfiles\";
        
            using (var fileStream2 = new FileStream(networkPath + "\\" + name, FileMode.Create, FileAccess.Write))
            {
                await fileStream.CopyToAsync(fileStream2);
            }
        }
    }
    
    参考:


    以及我们需要使用什么技术来下载文件,正如Tusdotnet所说,我们不负责下载文件
    文件存储在哪里?
    对于下载文件,我们需要编写自定义代码,但如何能够识别该级别的文件扩展名。
    对于上载文件,我们使用上面的代码:参考:您将文件存储在哪里?是否为C:\tusfiles\?如果是,是否
    app.UseStaticFiles(新的StaticFileOptions(){FileProvider=new PhysicalFileProvider(“C:\tusfiles\”),RequestPath=new PathString(“/tusfiles”);
    工作正常?您是否尝试过在上传完文件后重命名这些文件?