我开始在这个问题上胡思乱想,这通常意味着我遗漏了一些明显的东西。
我的 .NET MVC 控制器中有以下代码:
var provider = new CustomMultipartFileStreamProvider("prefix", GetRepositoryTempFolder());
await request.Content.ReadAsMultipartAsync(provider);
CustomMultipartFileStreamProvider 继承自 MultipartFileStreamProvider,覆盖 GetLocalFileName 方法并为给定的 ContentDisposition 标头返回适当的文件名。处理的 HttpContent 通常是一个 PDF 文件和一个小的 JSON 设置组件。
就在预期位置解析、提取和保存零件而言,一切都非常好。但是,在解析后,我最终在我的 C:\Windows\Temp 文件夹中留下了一个临时文件。该文件有一个随机生成的名称(例如 zf0hk2h4.ks2)。它与 ReadAsMultipartAsync 解析和保存的 PDF 部分具有相同的大小和创建日期。
我相信 ReadAsMultipartAsync 在解析过程中会使用这个临时文件并将其留在后面。有没有其他人经历过这个?有什么办法可以防止 ReadAsMultipartAsync 留下这个临时文件并堵塞 Windows 临时文件夹?