برای شروع کار یک پروژه از نوع MVC Empty ایجاد نمایید .
سپس یک کنترلر با نام Home درون پوشه Controller به آن بیفزایید.
جهت ذخیره سازی فایلهای آپلود شده یک پوشه به نام Upload به روت برنامه اضافه نمایید.
یک فایل css با نام style.css درون پوشه Content ایجاد نمایید و کدهای زیر را به آن بیفزایید.
body {
padding: 30px;
}
form {
display: block;
margin: 20px auto;
background: #eee;
border-radius: 10px;
padding: 15px;
}
.progress-bar {
position: relative;
width: 300px;
border: 1px solid #ddd;
padding: 1px;
border-radius: 3px;
}
.progress-bar-success {
background-color: #B4F5B4;
width: 0%;
height: 20px;
border-radius: 3px;
}
.percent {
position: absolute;
display: inline-block;
top: 3px;
left: 48%;
}
سپس کنترلر Home را بصورت زیر ویرایش نمایید.
public class HomeController : Controller
{
// GET: Home
public ActionResult FileUpload()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public void FileUpload(IEnumerable<HttpPostedFileBase> files)
{
if (files != null)
{
foreach (var file in files)
{
// Verify that the user selected a file
if (file != null && file.ContentLength > 0)
{
// extract only the fielname
var fileName = Path.GetFileName(file.FileName);
// TODO: need to define destination
var path = Path.Combine(Server.MapPath("~/Upload"), fileName);
file.SaveAs(path);
}
}
}
}
سپس یک ویو برای اکشن FileUpload ایجاد نمایید. و کدهای زیر را درون ویوی مورد نظر درج نمایید.
@{
ViewBag.Title = "FileUpload";
}
<link href="~/Content/style.css" rel="stylesheet" />
<script src="~/scripts/jquery.js"></script>
<script src="~/scripts/jquery.form.js"></script>
<h2>FileUpload</h2>
@using (Html.BeginForm("FileUpload", "Home"))
{
@Html.AntiForgeryToken()
<input type="file" name="files"><br>
<input type="submit" value="Upload File to Server">
}
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success">0%</div>
</div>
<script>
(function () {
var bar = $('.progress-bar');
var percent = $('.progress-bar');
var status = $('#status');
$('form').ajaxForm({
beforeSend: function () {
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
},
uploadProgress: function (event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
success: function () {
var percentVal = '100%';
bar.width(percentVal)
percent.html(percentVal);
},
complete: function (xhr) {
status.html(xhr.responseText);
}
});
})();
</script>
در این برنامه جهت ارسال ایجکس از کتابخانه jquery.form.js استفاده شده است و شما میتوانید آنرا از قسمت فایلهای ضمیمه شده در قسمت پایین صفحه دانلود نمایید
در پایان برنامه را اجرا نمایید.