当前位置: 首页 > 知识库问答 >
问题:

WebAPI文件上传--无需将文件写入磁盘

权黎昕
2023-03-14
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);

await Request.Content.ReadAsMultipartAsync(provider);

foreach (MultipartFileData file in provider.FileData)
{
   // File
}

共有1个答案

柳昊焱
2023-03-14

已解决:

使用现有的简单MultipartMemoryStreamProvider。不需要自定义类或提供程序。这与通过编写自定义提供程序解决方案的重复问题不同。

然后在WebAPI处理程序中使用它,如下所示:

public async Task<IHttpActionResult> UploadFile()
{
    if (!Request.Content.IsMimeMultipartContent())
    {
        return StatusCode(HttpStatusCode.UnsupportedMediaType);
    }        
  
    var filesReadToProvider = await Request.Content.ReadAsMultipartAsync();
    
    foreach (var stream in filesReadToProvider.Contents)
    {
        var fileBytes = await stream.ReadAsByteArrayAsync();
    }
    return StatusCode(HttpStatusCode.OK);
}
 类似资料:
  • 问题内容: 我目前正在实施ping / pong缓冲方案,以安全地将文件写入磁盘。我在Linux / CentOS计算机上使用C ++ / Boost。现在,我面临的问题是强制将文件实际写入磁盘。不管文件系统的所有缓存策略(ext3 / ext4)/ SO自定义规则/ RAID控制器/硬盘控制器如何,都可以这样做吗? 最好使用普通的fread()/ fwrite(),c ++ ostream或bo

  • 问题内容: 我想通过ajax调用使用WebApi上传文件,该文件将保存到数据库中。我尝试了此链接中 给出的代码 。在这里,它将接收到的数据作为未指定扩展名的文件保存到硬盘驱动器中,但是我想要执行类似将文件保存到数据库时的操作,我也想保存文件名和扩展名原因,如果以后需要要下载文件,我可以提供文件名和扩展名。并在链接中将文件作为文件保存到硬盘,但是有什么方法可以直接将文件保存到DB。 问题答案: 答案

  • 问题内容: 我将如何将javafx.scene.image.Image图像写入文件。我知道您可以在BufferedImages上使用ImageIO,但是有什么方法可以使用javafx图像吗? 问题答案: 差不多3年后,我现在有知识去做并回答这个问题。是的,原始答案也是有效的,但它涉及到先将图像转换为BufferedImage,我理想上想完全避免摆动。虽然这确实会输出图像的原始RGBA版本,足以满足

  • 问题内容: 我正在尝试从Http帖子回复文件写入 sdcard 上的文件。一切正常,直到检索到字节数据数组为止。 我尝试在清单中设置权限,并尝试了许多在网上找到的教程的不同组合。 我所能找到的只是使用活动的方法,但是我的应用程序如何通过线程来写入文件。具体来说,当必须写入文件时,会从另一个线程中调用一个线程,因此即使我尝试了活动对象,也无法使用它。 该应用程序已经走了很长一段路,我无法更改当前编写

  • 假设我有一个前端。在前面提到的前端,我想上传一个文件。Spring Boot(Java)应用程序中的控制器将所述文件作为MultipartFile(Service a)接收。我想从中获取输入流,并将其发送到另一个服务(服务B),而无需将所述流写入文件系统。服务B应该向服务A返回一些内容,服务A将所述响应发送给客户端,让我知道流媒体完成后它已经处理了所述文件。我不确定在SpringBoot应用程序中

  • 我有一点问题试图传入一个文件读取我的程序和排序一致。我不习惯处理文件,我没有办法实现这一点。 ///////////类读取文件///////////////////////////////////////////////////////////////////// 导入java.io.*;公共类InFileReader{ private BufferedReader inputStream=空;