Guest User

Untitled

a guest
Jul 23rd, 2014
440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. Server side MVC4
  2. [HttpPost]
  3. public ActionResult NewIssue(Issue model, List<HttpPostedFileBase> files)
  4. {}
  5.  
  6. .cshtml
  7. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  8. <script>
  9. var selDiv = "";
  10. var storedFiles = [];
  11.  
  12. $(document).ready(function() {
  13. $("#files").on("change", handleFileSelect);
  14.  
  15. selDiv = $("#selectedFiles");
  16. $("#myForm").on("submit", handleForm);
  17.  
  18. $("body").on("click", ".selFile", removeFile);
  19. });
  20.  
  21. function handleFileSelect(e) {
  22. var files = e.target.files;
  23. var filesArr = Array.prototype.slice.call(files);
  24. filesArr.forEach(function(f) {
  25.  
  26. if(!f.type.match("image.*")) {
  27. return;
  28. }
  29. storedFiles.push(f);
  30.  
  31. var reader = new FileReader();
  32. reader.onload = function (e) {
  33. var html = "<div><img src=\"" + e.target.result + "\" data-file='"+f.name+"' class='selFile' title='Click to remove'>" + f.name + "<br clear=\"left\"/></div>";
  34. selDiv.append(html);
  35.  
  36. }
  37. reader.readAsDataURL(f);
  38. });
  39.  
  40. }
  41.  
  42. function handleForm(e) {
  43. e.preventDefault();
  44. var data = new FormData();
  45.  
  46. for(var i=0, len=storedFiles.length; i<len; i++) {
  47. data.append('files', storedFiles[i]);
  48. }
  49.  
  50. var xhr = new XMLHttpRequest();
  51. xhr.open('POST', 'NewIssue', true);
  52.  
  53. xhr.onload = function(e) {
  54. if(this.status == 200) {
  55. console.log(e.currentTarget.responseText);
  56. alert(e.currentTarget.responseText + ' items uploaded.');
  57. }
  58. }
  59.  
  60. xhr.send(data);
  61. }
  62.  
  63. function removeFile(e) {
  64. var file = $(this).data("file");
  65. for(var i=0;i<storedFiles.length;i++) {
  66. if(storedFiles[i].name === file) {
  67. storedFiles.splice(i,1);
  68. break;
  69. }
  70. }
  71. $(this).parent().remove();
  72. }
  73. </script>
  74.  
  75. @using (Html.BeginForm((string)action, "Home", FormMethod.Post, new { enctype = "multipart/form-data", id = "myForm" }))
  76. {
  77. <div>
  78. <input type="file" id="files" name="files" multiple><br/>
  79. <div id="selectedFiles"></div>
  80. </div>
  81. <div class="col-lg-6">
  82. <button class="btn btn-primary" id="btnAddIssue" type="submit">Submit</button>
  83.  
  84. </div>
  85. }
Advertisement
Add Comment
Please, Sign In to add comment