次のコードを使用すると、ファイルは に正しくアップロードされますuploadPath
が、GetLocalFileName
メソッドは間違ったBodyPart
名前を返します。
ファイル名の GUID (例: BodyPart_f4a1e725-0194-4bda-a666-b6ffea7b0618
) は、アップロードしたばかりのファイルではない他の GUID になります。
アップロードされたファイルのファイル名を取得しようとしています。
private string lastUploadFileName
public async Task AsyncReceive(HttpRequestMessage incomingRequest)
{
request = incomingRequest;
streamProvider = new MultipartFormDataStreamProvider(uploadPath);
var uploadTask = request.Content.ReadAsMultipartAsync(streamProvider);
await uploadTask.ContinueWith(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
throw new Exception("Error uploading file.");
}
});
lastUploadFileName = streamProvider.GetLocalFileName(
request.Content.Headers);
}