我在上传文件后无法成功显示成功信息。我最初尝试使用ViewBag.Message,它可以在文件上传后正常工作并显示“成功”消息,这正是我想要的。但是,我找不到一种方法来在几秒钟后将该消息更改回“选择要上传的文件!”,以便用户了解他现在可以上传新文件。
然后,我尝试使用JavaScript功能来处理成功消息。问题在于,成功消息会在文件上传完成之前显示出来,这不好,如果文件非常小,则消息仅会显示一毫秒。
您有任何建议可以帮助我微调这个问题吗?我不确定是否应尝试进一步使用JavaScript或视图包或其他东西?
我正在寻找的是一个成功消息,在成功上传后显示约5秒钟,然后再次更改为“选择要上传的文件”消息。 https://github.com/xoxotw/mvc_fileUploader
然后,我尝试使用JavaScript功能来处理成功消息。问题在于,成功消息会在文件上传完成之前显示出来,这不好,如果文件非常小,则消息仅会显示一毫秒。
您有任何建议可以帮助我微调这个问题吗?我不确定是否应尝试进一步使用JavaScript或视图包或其他东西?
我正在寻找的是一个成功消息,在成功上传后显示约5秒钟,然后再次更改为“选择要上传的文件”消息。 https://github.com/xoxotw/mvc_fileUploader
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.Mvc;
namespace Mvc_fileUploader.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
//ViewBag.Message = "Choose a file to upload !";
return View("FileUpload");
}
[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase fileToUpload)
{
if (ModelState.IsValid)
{
if (fileToUpload != null && fileToUpload.ContentLength > (1024 * 1024 * 2000)) // 1MB limit
{
ModelState.AddModelError("fileToUpload", "Your file is to large. Maximum size allowed is 1MB !");
}
else
{
string fileName = Path.GetFileName(fileToUpload.FileName);
string directory = Server.MapPath("~/fileUploads/");
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
string path = Path.Combine(directory, fileName);
fileToUpload.SaveAs(path);
ModelState.Clear();
//ViewBag.Message = "File uploaded successfully !";
}
}
return View("FileUpload");
}
public ActionResult About()
{
ViewBag.Message = "Your app description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
文件上传视图:
@{
ViewBag.Title = "FileUpload";
}
<h2>FileUpload</h2>
<h3>Upload a File:</h3>
@using (Html.BeginForm("FileUpload", "Home", FormMethod.Post, new {enctype = "multipart/form-data"}))
{
@Html.ValidationSummary();
<input type="file" name="fileToUpload" /><br />
<input type="submit" onclick="successMessage()" name="Submit" value="upload" />
//@ViewBag.Message
<span id="sM">Choose a file to upload !</span>
}
<script>
function successMessage()
{
x = document.getElementById("sM");
x.innerHTML = "File upload successful !";
}
</script>