簡單實現ASP.NET MVC Ajax無刷新上傳圖片

這裏使用到了from.js,可以到官網下載或者從這裏下載:http://pan.baidu.com/s/1c2JS60C

首先在項目中引入jq和from.js

接下來在視圖中創建表單

<body>
    <form id="form1">
        <input type="file" name="file" />
        <input type="button" value="提交" onclick="sub()" />
    </form>
    <img  id="img" src=""/>
</body>

然後編寫上傳的JQ代碼

<script type="text/javascript">
    function sub()
    {
        $("#form1").ajaxSubmit({
            url: "@Url.Action("UploadFile", "UploadTest3")",
            type: "post",
            success: function (data) {
                $("#img").attr("src", data);
            },
            error: function (aa) {
                alert(aa);
            }
        });
    }
</script>

完整的視圖代碼如下

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.form.js"></script>
<body>
    <form id="form1">
        <input type="file" name="file" />
        <input type="button" value="提交" onclick="sub()" />
    </form>
    <img  id="img" src=""/>
</body>
<script type="text/javascript">
    function sub()
    {
        $("#form1").ajaxSubmit({
            url: "@Url.Action("UploadFile", "UploadTest3")",
            type: "post",
            success: function (data) {
                $("#img").attr("src", data);//data爲控制器返回的保存路徑的虛擬路徑,
                //並賦值給了img的src屬性,實現實時預覽功能。
            },
            error: function (aa) {
                alert(aa);
            }
        });
    }
</script>

編寫控制器代碼

 public class UploadTest3Controller : Controller
    {
        // GET: UploadTest3
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult UploadFile(HttpPostedFileBase file)
        {
         string fileName = System.IO.Path.GetFileName(file.FileName); //獲取上傳的文件名
         //到這裏已經在控制器中接到file文件了,後面根據實際需求對圖片進修保存即可
         return Content();//可以返回保存的虛擬路徑給視圖,實現實時預覽功能。
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章