ASP.NET Web APIは簡単なファイルダウンロードとアップロードを実現
2777 ワード
ASP.NET Web APIは簡単なファイルダウンロードとアップロードを実現する.まずASPを作成する.NET Web APIプロジェクトは、プロジェクトの下にFileRootディレクトリを作成し、その下にReportTemplateを作成します.xlsxファイルは、次の例の使用に使用します.
1、ファイルのダウンロード
例:レポートテンプレートファイルのダウンロード機能を実装します.
1.1バックエンドコード
1.2フロントエンドコード
2、ファイルのアップロード
例:レポート・ファイルのアップロード機能を実装します.
2.1バックエンドコード
2.2フロントエンドコード
1、ファイルのダウンロード
例:レポートテンプレートファイルのダウンロード機能を実装します.
1.1バックエンドコード
///
///
///
[HttpGet]
public HttpResponseMessage DownloadFile()
{
string fileName = " .xlsx";
string filePath = HttpContext.Current.Server.MapPath("~/") + "FileRoot\\" + "ReportTemplate.xlsx";
FileStream stream = new FileStream(filePath, FileMode.Open);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = HttpUtility.UrlEncode(fileName)
};
response.Headers.Add("Access-Control-Expose-Headers", "FileName");
response.Headers.Add("FileName", HttpUtility.UrlEncode(fileName));
return response;
}
1.2フロントエンドコード
テンプレートのダウンロード
2、ファイルのアップロード
例:レポート・ファイルのアップロード機能を実装します.
2.1バックエンドコード
///
///
///
[HttpPost]
public HttpResponseMessage UploadFile()
{
try
{
//
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];
HttpRequestBase request = context.Request; // request
string monthly = request.Form["Monthly"]; // :
string reportName = request.Form["ReportName"]; // :
//
string fileName = String.Format("{0}_{1}.xlsx", monthly, reportName);
string filePath = HttpContext.Current.Server.MapPath("~/") + "FileRoot\\" + fileName;
request.Files[0].SaveAs(filePath);
//
var result = new HttpResponseMessage
{
Content = new StringContent(" ", Encoding.GetEncoding("UTF-8"), "application/json")
};
return result;
}
catch (Exception ex)
{
throw ex;
};
}
2.2フロントエンドコード