2つの異なるファイルを同じフォームの2つの異なるデータベースフィールドにアップロードしようとしています。
------------------------------------
reportid | name | image | template |
------------------------------------
これがテーブルルックです。だから私は画像とテンプレートにファイルをアップロードしたいと思います。私のモデル:
public class Report
{
[Key]
public int ReportID { get; set; }
[Required]
public string Name { get; set; }
public byte[] Image { get; set; }
public byte[] Template { get; set; }
}
コントローラのMyCreateメソッド:
public ActionResult Create(Report report, HttpPostedFileBase file, HttpPostedFileBase temp)
{
if (ModelState.IsValid)
{
if (file != null && file.ContentLength > 0)
{
using (MemoryStream ms = new MemoryStream())
{
file.InputStream.CopyTo(ms);
report.Image = ms.GetBuffer();
}
}
if (temp != null && temp.ContentLength > 0)
{
using (MemoryStream ms1 = new MemoryStream())
{
temp.InputStream.CopyTo(ms1);
report.Template = ms1.GetBuffer();
}
}
db.Reports.Add(report);
db.SaveChanges();
db.Configuration.ValidateOnSaveEnabled = true;
return RedirectToAction("Index");
}
そしてアップロードに関する見解の一部:
<div class="editor-label">
<%:Html.LabelFor(model => model.Image) %>
</div>
<div class="editor-field">
<input type="file" id="fuImage" name="file" />
</div>
<div class="editor-label">
<%:Html.Label("Template") %>
</div>
<div class="editor-field">
<input type="file" id="temp" name="temp"/>
</div>
<p>
<input type="submit" value="Create" />
</p>
IEnumerable<HttpPostedFileBase> files
別のフィールドに保存する必要があるため、メソッドのパラメーターとして使用できないため、これでかなり行き詰まっていCreate
ますか?これにどのようにアプローチすればよいですか?助けてください:S
注:画像のアップロードは正常に機能します。