iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 27
0
Modern Web

ASP.NET MVC5架構說明與Q&A諮詢系統實作系列 第 27

[DAY 27] Q&A 諮詢系統 - 程式開發(檔案上傳)

延續上一篇來到

② 檔案上傳

https://ithelp.ithome.com.tw/upload/images/20201010/20128969o4anPO9Fn6.png

  1. 選擇檔案上傳
  2. 選擇單個多個 檔案上傳(不限檔案格式)
  3. 按確定
    若是上傳單個 檔案會顯示出檔名、副檔名
    若是上傳多個 檔案則會顯示總共上傳幾個檔案

全部資料都填完之後 ➡ 提交,系統會將檔案上傳回系統內,並將資訊回傳給資料庫


程式碼

<!--Views/Quer/Quer-->
<div class="form00">
    <!--提交後使用 post 回傳資料,並連接到 QuerController 的 Quers Action-->
    <form  class="form_01" method="post" name="form" 
            action="@Url.Action("Quers")" 
            enctype="multipart/form-data" onsubmit="return check()">
        <div class="form-group">
            <!--檔案上傳的按鈕-->
            <input type="file" class="form-control-file" id="file" name="file" multiple>
            <p>可加入電子檔輔助說明(選填,圖片、文件檔可多項上傳)</p>
        </div>
    </form>
</div>
//QuerController
public class QuerController : Controller
{
    [HttpPost]
    public ActionResult Quers(FormCollection post, 
                        IEnumerable<HttpPostedFileBase> file)
    {
        //抓取檔案資訊
        string FILE_NAME = "";
        string FILE_ADDR = "";
        //先將檔案編號都訂為一
        int FILE_NO = 1;            
        foreach (var files in file)
        {
            if (files != null && files.ContentLength > 0)
            {
                FILE_NAME = Path.GetFileName(files.FileName);
                //將資料放進系統的 ~/FileUploads 資料夾裡
                FILE_ADDR = Path.Combine(Server.MapPath("~/FileUploads"), FILE_NAME);
                files.SaveAs(FILE_ADDR);
                string RawSQL3 = "INSERT INTO T_QUER_FILE 
                        (CASE_NO,QUER_NUMB,FILE_NO,FILE_ADDR,FILE_NAME,UPLD_DATE) " +
                             "VALUES('" +
                             CASE_NO + "'," +
                             QUER_NUMB + "," +
                             //若有多筆再往上加
                             FILE_NO++ + ",'" +
                             FILE_ADDR + "','" +
                             FILE_NAME + "','" +
                             CASE_STAR_DATE + "');";
                db.Database.ExecuteSqlCommand(RawSQL3);
                db.SaveChanges();
            }
        }
    }
}

頁面上的希望回覆時間 下拉選單跟昨天的請選擇問題分類 下拉選單方法一樣 ➡ 從資料庫裡拉資料,這邊就不再講一次囉 d(`・∀・)b
OKK 到這邊諮詢頁面界完成囉!


ㄚ對了!中華民國生日快樂!/images/emoticon/emoticon53.gif


上一篇
[DAY 26] Q&A 諮詢系統 - 程式開發(下拉選單連到 API、資料庫)
下一篇
[DAY 28] Q&A 諮詢系統 - 程式開發(Data Tables)
系列文
ASP.NET MVC5架構說明與Q&A諮詢系統實作30

尚未有邦友留言

立即登入留言