天天看點

MVC3 上傳檔案

注意:紅色部分必須添加 

前台:

@{

    ViewBag.Title = AutoUpdater.Profile.title + " - 上傳更新檔案";

}

@model AutoUpdater.Models.UploadFileModel

<h2>上傳更新檔案</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@Html.ValidationSummary(true)

<div class="validation-summary-errors">@ViewBag.ErrorMessage</div><br />

@using (Html.BeginForm("UploadFile", "Operations", FormMethod.Post, new { enctype = "multipart/form-data" }))

{

    <div>

        <fieldset>

            <legend>更新檔案資訊</legend>

            <div class="editor-label">

                @Html.LabelFor(m => m.Version)

            </div>

            <div class="editor-field">

                @Html.TextBoxFor(m => m.Version)

                @Html.ValidationMessageFor(m => m.Version)

                @Html.LabelFor(m => m.UFile)

            <div class="editor-field">                

                <input type="file" id="upfile" name="upfile" />                

            <p>

                <input type="submit" value="上 傳" />

            </p>

        </fieldset>

    </div>

 後天:

[AcceptVerbs(HttpVerbs.Post)]

        public ActionResult UploadFile(FormCollection collection, UploadFileModel model)

        {

            if (Session["UserID"] == null)

            {

                ViewBag.ErrorMessage = "請先登入!";

                return View();

            }

            if (Request.Files.Count == 0)

                ViewBag.ErrorMessage = "請選擇上傳的更新檔案!";

            var fileVersion = Request.Files[0];

            if (fileVersion == null || (fileVersion != null && fileVersion.ContentLength == 0))

            if (fileVersion != null && fileVersion.ContentLength > 0)

                if (fileVersion.ContentLength < Profile.minLen || fileVersion.ContentLength > Profile.maxLen)

                {

                    ViewBag.ErrorMessage = string.Format("上傳的更新檔案必須介于{0}K-{1}K之間!", Profile.minLen / 1024, Profile.maxLen / 1024);

                    return View();

                }

                using (var db = new LogDB(Profile.dbpath))

                    if (db.ExistVersion(model.Version.ToUpper()))

                    {

                        ViewBag.ErrorMessage = "已經存在相同版本号的更新檔案!";

                        return View();

                    }

                string suffix = Path.GetExtension(fileVersion.FileName).ToLower();

                string fileName = string.Format("{0}{1}", model.Version.ToUpper(), suffix);

                fileVersion.SaveAs(Path.Combine(Profile.filepath, fileName));

                    db.Write(fileName, Session["UserID"].ToString(), fileVersion.ContentLength, model.Version.ToUpper());

                return RedirectToAction("FileList", "Operations");

            return View();

        } 

本文轉自94cool部落格園部落格,原文連結http://www.cnblogs.com/94cool/archive/2012/11/02/2750672.html,如需轉載請自行聯系原作者

繼續閱讀