بررسی ویجت Kendo UI File Upload
نویسنده: وحید نصیری
تاریخ: ۱۳۹۳/۰۹/۰۳ ۱۱:۳۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
<form method="post" action="submit" enctype="multipart/form-data">
<div>
<input name="files" id="files" type="file" />
<input type="submit" value="Submit" class="k-button" />
</div>
</form>
<script>
$(document).ready(function() {
$("#files").kendoUpload();
});
</script> <script type="text/javascript">
$(function () {
$("#files").kendoUpload({
name: "files",
async: { // async configuration
saveUrl: "@Url.Action("Save", "Home")", // the url to save a file is '/save'
removeUrl: "@Url.Action("Remove", "Home")", // the url to remove a file is '/remove'
autoUpload: false, // automatically upload files once selected
removeVerb: 'POST'
},
multiple: true,
showFileList: true
});
});
</script> [HttpPost]
public ActionResult Save(IEnumerable<HttpPostedFileBase> files)
{
if (files != null)
{
// ...
// Process the files and save them
// ...
}
// Return an empty string to signify success
return Content("");
}
[HttpPost]
public ContentResult Remove(string[] fileNames)
{
if (fileNames != null)
{
foreach (var fullName in fileNames)
{
// ...
// delete the files
// ...
}
}
// Return an empty string to signify success
return Content("");
}
<!-- Content Type with wildcard. All Images --> <input type="file" id="demoFile" title="Select file" accept="image/*" /> <!-- List of file extensions --> <input type="file" id="demoFile" title="Select file" accept=".jpg,.png,.gif" /> <!-- Any combination of the above --> <input type="file" id="demoFile" title="Select file" accept="audio/*,application/pdf,.png" />
<div class="k-rtl k-header">
<input name="files" id="files" type="file" />
</div> <script type="text/javascript">
$(function () {
$("#files").kendoUpload({
name: "files",
async: {
//...
},
//...
localization: {
select: 'انتخاب فایلها برای ارسال',
remove: 'حذف فایل',
retry: 'سعی مجدد',
headerStatusUploading: 'در حال ارسال فایلها',
headerStatusUploaded: 'پایان ارسال',
cancel: "لغو",
uploadSelectedFiles: "ارسال فایلها",
dropFilesHere: "فایلها را برای ارسال، کشیده و در اینجا رها کنید",
statusUploading: "در حال ارسال",
statusUploaded: "ارسال شد",
statusWarning: "اخطار",
statusFailed: "خطا در ارسال"
}
});
});
</script> <style type="text/css">
div.k-dropzone {
border: 1px solid #c5c5c5; /* For Default; Different for each theme */
}
div.k-dropzone em {
visibility: visible;
}
</style> <script id="fileListTemplate" type="text/x-kendo-template">
<li class='k-file'>
<span class='k-progress'></span>
<span class='k-icon'></span>
<span class='k-filename' title='#=name#'>#=name# (#=size# bytes)</span>
<strong class='k-upload-status'></strong>
</li>
</script> <script type="text/javascript">
$(function () {
$("#files").kendoUpload({
name: "files",
async: {
// ...
},
// ...
template: kendo.template($('#fileListTemplate').html()),
// ...
});
});
</script> <script type="text/javascript">
$(function () {
$("#files").kendoUpload({
name: "files",
async: { // async configuration
//...
},
//...
localization: {
},
cancel: function () {
console.log('Cancel Event.');
},
complete: function () {
console.log('Complete Event.');
},
error: function () {
console.log('Error uploading file.');
},
progress: function (e) {
console.log('Uploading file ' + e.percentComplete);
},
remove: function () {
console.log('File removed.');
},
select: function () {
console.log('File selected.');
},
success: function () {
console.log('Upload successful.');
},
upload: function (e) {
console.log('Upload started.');
}
});
});
</script> <script type="text/javascript">
$(function () {
$("#files").kendoUpload({
name: "files",
async: {
//...
},
//...
localization: {
},
upload: function (e) {
console.log('Upload started.');
// Sending metadata to the save action
e.data = {
codeId: "1234567",
param2: 12
//, ...
};
}
});
});
</script> [HttpPost] public ActionResult Save(IEnumerable<HttpPostedFileBase> files, string codeId)
<script type="text/javascript">
$(function () {
$("#files").kendoUpload({
name: "files",
async: {
// ....
batch: true
},
});
});
</script> <?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<!-- The request length is in kilobytes, execution timeout is in seconds -->
<httpRuntime maxRequestLength="10240" executionTimeout="120" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- The content length is in bytes -->
<requestLimits maxAllowedContentLength="10485760"/>
</requestFiltering>
</security>
</system.webServer>
</configuration> remove: function () {
var r = confirm("برای حذف اطمینان دارید");
if (r == true)
{
alert("فایل حذف شد");
}
else
{
}
}, remove: function (e) {
if(!confirm("Are you sure you want to remove the item?")){
e.preventDefault();
}
},
<script>
$(function() {
kendo.destroy("#files");
});
</script> [HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(MyModel model, IEnumerable<HttpPostedFileBase> files)
{
// code
return View();
} [HttpPost]
public ActionResult Save(MyModel model, IEnumerable<HttpPostedFileBase> files)
{
var sModel = new MyViewModel
{
MainPhoto = model.MainPhoto,
Phone = model.Phone,
Title = model.Title,
WebSiteUrl = model.WebSiteUrl,
// ....
};
if (files != null)
{
var images = files.Select(file => new Image
{
FileName = Helpers.Helper.UploadFile(file)
}).ToList();
sModel.Images = images;
}
_locationService.AddLocation(sModel);
_uow.SaveAllChanges();
return RedirectToAction("List");
} // Return an empty string to signify success
return Content(""); public ActionResult EditSave(IEnumerable<HttpPostedFileBase> files, int referid)
{
// OASEntities db = new OASEntities();
// The Name of the Upload component is "files"
if (files != null)
{
int i =(int)db.letterdatas.Where(x => x.referletid == referid).Max(p => p.seq);
foreach (var file in files)
{
bool failtestsize = false;
if (file.ContentLength > 5096000) failtestsize = true;
if (failtestsize) return Content(new Exception("خطا : حجم فایل ارسالی بیش از حد مجاز میباشد").Message);
// System.Threading.Thread.Sleep(2000);
var xi = db.letterdatas.Where(x => x.referletid == referid).Count();
if (xi > 4) return Content(new Exception("خطا : تعداد فایلهای ارسالی بیش از حد مجاز میباشد").Message);
i++;
var fileName = Path.GetFileName(file.FileName);
byte[] filedata = new byte[file.ContentLength];
Stream st = file.InputStream;
st.Read(filedata, 0, file.ContentLength);
var letterdata = new letterdata
{
data = filedata,
extention = Path.GetExtension(file.FileName),
filename = fileName,
seq = i,
referletid = referid,
templetguid = null,
fileid = Guid.NewGuid(),
userid = db.users.Where(x => x.username == User.Identity.Name).Select(x => x.userid).FirstOrDefault()
};
db.letterdatas.Add(letterdata);
db.SaveChanges();
}
}
return Content("");
} int i =(int)db.letterdatas.Where(x => x.referletid == referid).Max(p => p.seq); var xi = db.letterdatas.Where(x => x.referletid == referid).Count();
@(Html.Kendo().Upload()
.Name("files")
.ShowFileList(true)
.Events(x => x.Select("onxselect").Upload("onxupload").Error("o nxerror"))
// .Multiple(false)
.HtmlAttributes(
new
{
accept =
".pdf"
})
.Messages(x => x.Select("انتخاب فایلهای نامه"))
.Messages(x => x.Remove("حذف فایل"))
.Messages(x => x.Cancel("لغو فایل"))
.Messages(x => x.Retry("دوباره"))
.Messages(x => x.UploadSelectedFiles("در حال ارسال فایلها ..."))
.Messages(x => x.HeaderStatusUploaded("کلیه فایلها ارسال شد"))
.Messages(x => x.DropFilesHere("فایلها را به اینجا بکشید"))
.Async(a => a
.Save("EditSave", "Lettersdata", new { referid = @ViewBag.referid })
.Remove("EditRemove", "Lettersdata", new { referid = @ViewBag.referid })
.AutoUpload(true)
// .Batch(true)
)
.Files(files =>
{
foreach (var f in @ViewBag.files)
{
files.Add().Name(f.filename);
}
}
)
) using (var transaction = new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
var database = new DatabaseContext();
// DBC: BEGIN TRANSACTION
var userA = database.Users.Find(1);
var userB = database.Users.Find(2);
userA.Name = "Admin";
database.SaveChanges();
userB.Age = 28;
database.SaveChanges();
// DBC: COMMIT TRANSACTION
transaction.Complete();
}