I am using 'Uploadify' Jquery plugin in my MVC 3.0 application to upload multiple files. Its working fine, but showing the list of files which got failed while uploading.
How to track the Successfully uploaded File Names?
My script looks like :
<link href="@Href("~/Content/uploadify.css")" rel="stylesheet" />
<script src="@Href("~/Scripts/jquery-1.4.1.js")" type="text/javascript"></script>
<script src="@Href("~/Scripts/jquery.uploadify.js")" type="text/javascript"></script>
<script type="text/javascript">
$(window).load(
function () {
$("#fileuploader").fileUpload({
'uploader': '/Scripts/uploader.swf',
'cancelImg': '/Images/cancel.png',
'buttonText': 'Select Image',
'script': 'Home/Upload',
'folder': '/uploads',
'fileDesc': 'Image & XML Files',
'fileExt': '*.jpg;*.jpeg;*.gif;*.png;*.xml',
'multi': true,
'auto': true
});
}
);
</script>
My HTML code :
<div id="fileuploader"></div>
<div>Upload Status</div>
Successful Files : <div> @TempData["SuccessfulFileList"]</div>
Failed Files :<div> @TempData["FailedFileList"]</div>
The Controller code goes like this:
private static List<string> _successfulFileList = new List<string>();
private static List<string> _failedFileList = new List<string>();
public string Upload(HttpPostedFileBase fileData)
{
try
{
var fileName = this.Server.MapPath("~/uploads/" + System.IO.Path.GetFileName(fileData.FileName));
fileData.SaveAs(fileName);
_successfulFileList.Add(fileName);
}
catch
{
var failedFileName = fileData.FileName;
_failedFileList.Add(failedFileName);
}
TempData["SuccessfulFileList"] = _successfulFileList;
TempData["FailedFileList"] = _failedFileList;
return "Some Files Get uploaded";
}