1. 程式人生 > >form表單上傳檔案並返回上傳結果

form表單上傳檔案並返回上傳結果

注意:這是JS的程式碼,且這個script標籤是在body裡面的(放在head裡是沒有反應的)

 <script type="text/javascript">
  function GetBrowserIsIE() {
            var obj = '';
            if (navigator.userAgent.indexOf('MSIE') > 0) {
                return true;//IE瀏覽器
            }
        }
        $("#btnUpload").click(function () {
            $("#Upload").form('submit', {
                url: "/TRCFG/fileUploadTest",
                success: function (data) {
                    var msg = '';
                    if (GetBrowserIsIE()) {
                        msg = data;
                        if (msg.IsSuccess) {
                            FixtureInspect();
                        }
                        else {
                            $.messager.alert('Error', msg.Message, 'error');
                        }
                    }
                    else {
                        msg = JSON.parse(data);
                        if (msg.IsSuccess) {
                            FixtureInspect();
                        }
                        else {
                            $.messager.alert('Error', msg.Message, 'error');
                        }
                    }
                }
            })
        });
    </script>

這是前臺程式碼

 <form id="Upload" action="/TRCFG/fileUploadTest" enctype="multipart/form-data" method="post">
    <input type="file" name="attach" id="attach" /><br />
    <input type="button" id="btnUpload" value="Upload" />
 </form>

這是Controller的程式碼

 [ActionName("fileUploadTest")]
        [HttpPost]
        public ActionResult fileUploadTest()
        {
            string filename = string.Empty;
            string toDir = "~/App_Data/";
            var FilePath = "";
            var files = Request.Files;
            for (int i = 0; i < files.Count; i++)
            {
                 var file = files[i];
                if (file.FileName.IndexOf("\\") == -1)
                {
                    filename = DateTime.Now.ToString("yyyyMMddHHmm") + file.FileName;//gu
                }
                else
                {
                    filename = DateTime.Now.ToString("yyyyMMddHHmm") + System.IO.Path.GetFileName(file.FileName);//IE
                } 
                FilePath = Path.Combine(Server.MapPath(toDir), filename);              
                file.SaveAs(FilePath);
            }
            if (System.IO.File.Exists(FilePath))
            {               
                return Json(new { IsSuccess = true });
            }
            return Json(new { IsSuccess = false, Message = "FAIL" }); 
        } 

我是跑成功了,但我不確定你們能不能,我之前也百度了很多,但自己都失敗了。注意啊,IE和Chrome還是有點區別的,而且有的IE會返回檔案下載的,這個好像是看IE的版本的,你們自己多注意下