C# Tusdotnet上载和下载文件.Net核心
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
- 用于上载文件的ASP.NET核心实现:
使用Tusdotnet进行调查后,我发现只有两种选择: 第一种方法 在文件夹系统中成功上载文件时重命名文件。(因为tusdotnet在成功上载文件时不维护文件扩展名。)。 第二种方法 当tusdotnet成功上传您的文件时,请同时使用以下代码上传扩展名相同的文件: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); } } }
}
参考: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”);