MVC 文件上传 代码放在哪里
MVC File upload Where to put code
好的,所以我正在尝试迁移到 MVC。
我制作了模型、视图和控制器,但现在我想更改应用程序的创建功能。
我正在处理上传,我的控制器中有这个系统生成的代码。
Function Create(<Bind(Include:="Id,Course,Category,SubCategory,FileName,FileType,UploadedBy,DateUploaded")> ByVal acAsset As acAsset) As ActionResult
If ModelState.IsValid Then
db.Assets.Add(acAsset)
db.SaveChanges()
Return RedirectToAction("Index")
End If
Return View(acAsset)
End Function
现在我想改变它,这样它就会
- 检查课程、类别和子类别的文件夹是否存在。如果此文件夹不存在,则必须创建它。
- 通过文件select离子框上传文件select。
- Post 数据库的文件名。
代码不一定是问题,我只是不确定我应该把控制器放在哪里?
我读过这个 article 但没有处理数据库 post。
提前致谢。
在您看来
<input type="file" name="file">
在你的控制器中
public actionresult(HttpPostedFileBase file)
{
string filename = Path.GetFileName(file.FileName);
string contentType = file.ContentType;
using (Stream fs = file.InputStream)
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
}
}
//Data Context Code here
tableName.File= bytes;
db.add(tableName);
db.SaveChanges();
}
您只需在控制器中添加您想要点击按钮的代码
您的 Razor 查看代码
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" />
<input type="submit" name="Submit" id="Submit" value="Upload" />
}
C#代码
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
file.SaveAs(path);
}
return RedirectToAction("UploadDocument");
}
}
好的,所以我正在尝试迁移到 MVC。 我制作了模型、视图和控制器,但现在我想更改应用程序的创建功能。
我正在处理上传,我的控制器中有这个系统生成的代码。
Function Create(<Bind(Include:="Id,Course,Category,SubCategory,FileName,FileType,UploadedBy,DateUploaded")> ByVal acAsset As acAsset) As ActionResult
If ModelState.IsValid Then
db.Assets.Add(acAsset)
db.SaveChanges()
Return RedirectToAction("Index")
End If
Return View(acAsset)
End Function
现在我想改变它,这样它就会
- 检查课程、类别和子类别的文件夹是否存在。如果此文件夹不存在,则必须创建它。
- 通过文件select离子框上传文件select。
- Post 数据库的文件名。
代码不一定是问题,我只是不确定我应该把控制器放在哪里?
我读过这个 article 但没有处理数据库 post。
提前致谢。
在您看来
<input type="file" name="file">
在你的控制器中
public actionresult(HttpPostedFileBase file)
{
string filename = Path.GetFileName(file.FileName);
string contentType = file.ContentType;
using (Stream fs = file.InputStream)
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
}
}
//Data Context Code here
tableName.File= bytes;
db.add(tableName);
db.SaveChanges();
}
您只需在控制器中添加您想要点击按钮的代码
您的 Razor 查看代码
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" />
<input type="submit" name="Submit" id="Submit" value="Upload" />
}
C#代码
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/"), fileName);
file.SaveAs(path);
}
return RedirectToAction("UploadDocument");
}
}