---恢復內容開始---
Ajax提交表單、使用FormData提交表單數據和上傳的文件(這里的后台使用C#獲取,你可以使用Java一樣獲取)
有時候前台的數據提交到后台,不想使用form表單上傳,希望通過Ajax上傳,那么怎么實現呢?
前台頁面:
<div> <table id="outputInfo"> <tr><td>Client</td><td><input id='ClientName' type='text'></td></tr> <tr><td>CropID</td><td><input id='CropID' type='text' /></td></tr> <tr><td>Secret</td><td><input id='Secret' type='text'/></td></tr> <tr><td>AppID</td><td><input id='AppID' type='text'/></td></tr> <tr><td>Logo</td><td><input id='Logo' type='file'/></td></tr> </table> </div> <button id="saveInfo">Save</button>
JS代碼:
$("#saveInfo").click(function () { var clientName = $("#ClientName").val(); var CropID = $("#CropID").val(); var Secret = $("#Secret").val(); var AppID = $("#AppID").val(); var formData = new FormData(); alert(clientName); formData.append("file", document.getElementById("Logo").files[0]); formData.append("clientName", clientName); formData.append("CropID", CropID); formData.append("Secret", Secret); formData.append("AppID", AppID); $.ajax({ url: "上傳地址", data: formData, type: "POST", contentType: false,//這里 processData: false,//這兩個一定設置為false success: function (info) { if (info == "success") { alert("成功上傳"); } else { alert(info); } } }); });
那么在后台接收使用(這里使用C# 代碼實現的,Java代碼也一樣的道理實現):
HttpRequest request = HttpContext.Current.Request; //獲取到前台的ClientName string ClientName = request.Params["clientName"]; //獲取前台的CropID string CropID = request.Params["CropID"]; //獲取前台的Secret string Secret = request.Params["Secret"]; //獲取前台的AppID string APPID = request.Params["AppID"]; //獲取前台上傳的文件 if (request.Files.Count > 0){ HttpPostedFile file = request.Files[0]; }
這個功能的實現可以實現如:一個頁面注冊時上傳用戶圖像等情形,當然是用Form表單也可以實現。
另外,一些ajax提交表單、ajax實現文件上傳的實現,可參考:
http://www.cnblogs.com/dmyao/p/5057274.html
---恢復內容結束---