現在、WebAPIコントローラにアップロードされているファイルを保存することができますが、正しいファイル名拡張子を持つGUIDとして保存することができますそれは正しく見ることができます。guidとファイル拡張子を使用したASP.NET WebApiファイルのアップロード
コード:
[ValidationFilter]
public HttpResponseMessage UploadFile([FromUri]string AdditionalInformation)
{
var task = this.Request.Content.ReadAsStreamAsync();
task.Wait();
using (var requestStream = task.Result)
{
try
{
// how can I get the file extension of the content and append this to the file path below?
using (var fileStream = File.Create(HttpContext.Current.Server.MapPath("~/" + Guid.NewGuid().ToString())))
{
requestStream.CopyTo(fileStream);
}
}
catch (IOException)
{
throw new HttpResponseException(HttpStatusCode.InternalServerError);
}
}
HttpResponseMessage response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.Created;
return response;
}
私はコンテンツの実際のファイル名のハンドルを取得するように見えることはできません。私はのheaders.ContentDisposition.FileNameが候補になるかもしれないと思っていましたが、そのように見なされることはありません。
答えと似た質問[http://stackoverflow.com/questions/14937926/file-name-from-httprequestmessage-content][1] である[1]: http://stackoverflow.com/questions/14937926/file-name-from-httprequestmessage-content – forseta
リクエストのヘッダーの様子を共有できますか?リクエストにContentDispositionヘッダーが設定されていますか? –
このようなヘッダーを設定するのはクライアントの責任です。あなたのクライアントはどのように見えますか? – Snixtor