gpt4 book ai didi

asp.net - 在 Web 应用程序中存储文件上传的位置

转载 作者:行者123 更新时间:2023-12-05 06:45:02 25 4
gpt4 key购买 nike

我正在使用 byte[] 获取我要上传到我的 ASP.NET 网站的文件的序列化版本。我在您的 View 模型上使用 HttpPostedFileBase 来保存上传的文件

public class MyViewModel
{
[Required]
public HttpPostedFileBase File { get; set; }
}

我的 HomeController

public class HomeController: Controller
{
public ActionResult Index()
{
var model = new MyViewModel();
return View(model);
}

[HttpPost]
public ActionResult Index(MyViewModel model)
{
if (!ModelState.IsValid)
return View(model);

byte[] uploadedFile = new byte[model.File.InputStream.Length];
model.File.InputStream.Read(uploadedFile, 0, uploadedFile.Length);

// Where do I write the file to?

return Content("Upload complete");
}
}

最后在我看来我有

@model MyViewModel
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div>
@Html.LabelFor(x => x.File)
@Html.TextBoxFor(x => x.File, new { type = "file" })
@Html.ValidationMessageFor(x => x.File)
</div>
<button type="submit">Upload</button>
}

上传将仅由我(管理员)执行,并且只有两个,都是应用程序安装程序(.exe 文件,一个 8MB,另一个 18MB)。我的问题是如何/在哪里可以存储上传的文件,以便用户可以下载这些文件?

感谢您的宝贵时间。

最佳答案

通常您会使用 App_Data文件夹来执行此操作。这将通过 HttpContext.Current.Server.MapPath("~/App_Data/"); 访问。

但是有concerns about uploading将数据存储在 Web 应用程序的子文件夹中(vNext 的设计可能会减少)。这些天像这样的东西(用户可能想通过互联网访问)我会存储在类似 Azure Storage 的东西上或 S3这有一些成本,但在大多数情况下它非常低,不会成为问题(每月每 GB 约 0.0300 美元)。

关于asp.net - 在 Web 应用程序中存储文件上传的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26780773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com