BootStrap--模態框中 上傳圖片


問題:在模態框中添加圖片並不會得到你上傳圖片的名稱,無法存到數據 

下面介紹兩個方法,都是可以得到圖片名稱的。

第一種   前面如何加載模態框就不寫了,上篇有寫,這里只是為得到圖片寫的

//需要添加一個JS 
<script src="~/Scripts/jquery.form.js"></script> //用來添加圖片的 表單異步提交庫
@*模態框開始*@
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<form method="post" id="mm" enctype="multipart/form-data"> //form 表單需要, <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h4 class="modal-title" id="myModalLabel">模態框(Modal)標題</h4> </div> <div class="modal-body">
<div class="control-group">
<label class="control-label" for="FileUpload1">上傳圖片</label>
<div class="controls">
<input class="input-file uniform_on" id="FileUpload1" name="FileUpload1" type="file">
</div>
</div> </div> </div><!-- /.modal-content --> </div><!-- /.modal -->
</from>
</div>@*模態框結束*@
JS代碼:
//添加 到數據庫
$("#sum").click(function () {
//模態框中添加圖片 兩種做法
ajaxSubmit是個方法,引用了form.js這個庫,此方法才有效
$("#mm").ajaxSubmit({ url: "@Url.Action("AddPric")", //訪問這個方法用來得到圖片名稱 type: "post", success: function (data) { img = data; //data就是名稱了 alert(data); });
 
         

 

 
        

后台:

       /// <summary>
        /// 圖片名稱
        /// </summary>
        /// <returns></returns>
        public ActionResult AddPric()
        {
            if (Request.Files["FileUpload1"] != null)
            {
                string savePath = Server.MapPath("~/Content/img");//建立虛擬路徑,需要存在你的項目中的
                //Request.Files["FileUpload"].FileName      上傳文件的完整路徑
                //string name = Request.Files["FileUpload1"].ContentType;  //image/jpeg
                string ext = Path.GetExtension(Request.Files["FileUpload1"].FileName); //獲取上傳文件的擴展名     
                string fileName = "";
                switch (ext)
                {
                    case ".jpg":
                    case ".jpeg":
                    case ".png":
                    case ".gif":
                    case ".bmp":
                    case ".rar":
                    case ".zip":
                        if (Request.Files["FileUpload1"].ContentLength < 1024000)
                        {
                            fileName = Guid.NewGuid().ToString().Substring(0, 8) + ext;   //新的圖片名稱 Guid一個36位的隨機數
                            Request.Files["FileUpload1"].SaveAs(savePath + "\\" + fileName); //保存到項目中
                        }
                        break;
                }
                return Content(fileName);   //返回圖片名稱
            }
            else
            {
                return Content("");
            }
        }

第二種:

<html>
<head>  
    <title>Index</title>
    <script src="~/Scripts/jquery-1.8.2.js"></script>    //這兩個JS需要引用     模板里面的js庫
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
    <script>     
        $(function () {          
            $("#btn").click(function () {
                //將表單封裝成一個表單數據對象
                var formData = new FormData($("#ff")[0]);  //必
                $.ajax({
                    url: '@Url.Action("aaa")',
                    type: "POST",
                    data: formData,
                    contentType: false, //必須false才會避開jQuery對 formdata 的默認處理 
                    processData: false, //必須false才會自動加上正確的Content-Type
                    success: function (data) {
                        alert(data)
                    }
                });

            });
        });

    </script>
</head>
<body>

    @*//注意:可以將表單代碼放入模態框中,整個提交過程不會刷新頁面,使用AJAX將文件提交到服務器端,之后的處理和一般上傳沒有區別*@
    <form action="/" method="post" id="ff" enctype="multipart/form-data">
         <div>
             <input type="text" name="tt" id="tt" />
             <input type="file" name="file" id="file" />
             <input type="button" value="submit" id="btn" />

         </div>
         <div id="dd"></div>
    </form>
</body>
</html>

后台:

    public ActionResult aaa()
        {
            return Content(Request.Files[0].FileName + "|" + Request.Form[0]);
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM