注意:這是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的版本的,你們自己多注意下