1. 程式人生 > 實用技巧 >weui-uploader檔案上傳部分

weui-uploader檔案上傳部分

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <link href="~/Content/weui/weui.css" rel="stylesheet" />
</head>
<body>
    <div class="weui-cells_form">

        <div class="weui-cell__bd">
            <div class="weui-uploader">
                <div class="weui-uploader__hd">
                    <p class="weui-uploader__title">圖片上傳</p>
                    <div class="weui-uploader__info">0/2</div>
                </div>
                <div class="weui-uploader__bd">
                    <ul class="weui-uploader__files" id="uploaderFiles">
                        <li class="weui-uploader__file" style="background-image: url(/Content/imgs/ulite.jpg);"></li>
                        <li class="weui-uploader__file" style="background-image: url(/Content/imgs/ulite.jpg);"></li>
                        <li class="weui-uploader__file" style="background-image: url(/Content/imgs/ulite.jpg);"></li>
                        <li class="weui-uploader__file weui-uploader__file_status" style="background-image: url(/Content/imgs/ulite.jpg);">
                            <div class="weui-uploader__file-content">
                                <i class="weui-icon-warn"></i>
                            </div>
                        </li>
                        <li class="weui-uploader__file weui-uploader__file_status" style="background-image: url(/Content/imgs/ulite.jpg);">
                            <div class="weui-uploader__file-content">50%</div>
                        </li>
                    </ul>
                    <div class="weui-uploader__input-box">
                        <input id="uploaderInput" class="weui-uploader__input" type="file" accept="image/*" multiple />
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script src="~/Scripts/jquery-3.3.1.min.js"></script>
    <script src="~/Content/weui/weui.mini.js"></script>
    <script>
        $(function () {
            var tmpl = '<li class="weui-uploader__file" style="background-image:url(#url#)"></li>',
                $gallery = $("#gallery"), $galleryImg = $("#galleryImg"),
                $uploaderInput = $("#uploaderInput"),
                $uploaderFiles = $("#uploaderFiles");

            $uploaderInput.on("change", function (e) {
                var src, url = window.URL || window.webkitURL || window.mozURL, files = e.target.files;
                for (var i = 0, len = files.length; i < len; ++i) {
                    var file = files[i];

                    if (url) {
                        src = url.createObjectURL(file);
                    } else {
                        src = e.target.result;
                    }

                    $uploaderFiles.append($(tmpl.replace('#url#', src)));

                    //檔案上傳begin

                    var formData = new FormData();
                    console.log(files[i]);
                    formData.append("file", files[i]);
                    formData.append("imgType", 1);
                    formData.append("appId", "1111");
                    formData.append("random", "21312");
                    formData.append("sign", "123123");
                    $.ajax({
                        async: true,
                        contentType: false, //頭部請求內容格式
                        dataType: 'json',
                        type: 'post',
                        data:formData,
                        // 告訴jQuery不要去處理髮送的資料
                        processData: false,
                        url: "@Url.Action("ImageUpload", "File")",//後端接收圖片介面
                        success: function(data) {
                            //後端Httpclient請求成功後返回過來的結果
                            console.log(data);
                        }
                    });
                    //檔案上傳End
                   
                }
            });
            $uploaderFiles.on("click", "li", function () {
                $galleryImg.attr("style", this.getAttribute("style"));
                $gallery.fadeIn(100);
            });
            $gallery.on("click", function () {
                $gallery.fadeOut(100);
            });
        });
    </script>
</body>
</html>

  除了其中"檔案上傳"部分,其它為weui-uploader的示例程式。

有些時候還是必須傳入其它引數的,儲存資料庫時才知道這個附檔關聯到哪個文件中。

 [HttpPost]
        public JsonResult ImageUpload(FormContext context)
        {
            HttpPostedFileBase fileData = Request.Files[0];
            string appId = Request["appId"];
            string random = Request["random"];
            string sign = Request["sign"];
            string imgType = Request["imgType"];
            if (fileData != null)
            {
                try
                {
                    string fileName = Path.GetFileName(fileData.FileName);//原始檔名稱
                    string fileExtension = Path.GetExtension(fileName).ToLower();
                    string newFileName =Guid.NewGuid().ToString().Replace("-", "")+fileExtension;
                    fileData.SaveAs(Server.MapPath("~/upload/" + newFileName));
                    ///to do list 儲存到資料庫 今天就不玩了





                    return Json(new { code = 1, list = newFileName, msg = "上傳成功~" });
                }
                catch (Exception ex)
                {
                    return Json(new { code = 0, msg = ex.Message });
                }
            }
            else
            {
                return Json(new { code = 0, msg = "圖片上傳失敗,請稍後再試~" });
            }
        }

  後臺能儲存到本地檔案了,其它的操作就簡單了。