Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

Index.cshtml 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. @{
  2. Layout = "~/Views/Shared/_Layout.cshtml";
  3. }
  4. @using SecureSharing.Business.Infrastructure
  5. @model MessageModel
  6. <h1>Share files</h1>
  7. <form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="CreateMessage" class="share-files-form">
  8. <label class="label-text">Sharing link avaliability</label>
  9. <div class="button-box col-lg-12">
  10. <div class="single-button-input">
  11. <input id="OneTime" checked="checked" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_TIME">
  12. <label for="OneTime" class="label-available"><span style="color:#FFA463">One</span> Time</label>
  13. </div>
  14. <div class="single-button-input">
  15. <input id="OneHour" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_HOUR"/> <label for="OneHour" class="label-available">1 <span style="color:#B9CFE4;">hour</span></label>
  16. </div>
  17. <div class="single-button-input">
  18. <input id="OneDay" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_DAY"/> <label for="OneDay" class="label-available">1 <span style="color:#B9CFE4;">day</span></label>
  19. </div>
  20. <div class="single-button-input">
  21. <input id="SevenDays" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_WEEK"/> <label for="SevenDays" class="label-available">7 <span style="color:#B9CFE4;">days</span></label>
  22. </div>
  23. </div>
  24. <label class="label-text">Message (optional)</label>
  25. <textarea asp-for="Text" class="input-message"></textarea>
  26. <label class="label-text">Upload files</label>
  27. <div id="dropContainer" class="drop-here">
  28. <img class="image-file-upload" src="~/img/file-upload-image.png" alt=""/>
  29. <div class="default-text text-files-upload">
  30. <label for="fileInput" class="btn browse-button">
  31. <span style="color:#0D1C52">Drag and drop files here or</span> browse
  32. </label>
  33. <input asp-for="Files" id="fileInput" type="file" multiple style="display: none"/>
  34. <input asp-for="FilesAsText" id="fileInputAsText" type="text" style="display:none"/>
  35. </div>
  36. </div>
  37. <div class="label-text">
  38. Your files
  39. </div>
  40. <div id="filesUploaded">
  41. </div>
  42. <button class=" btn btn-light share-button" type="submit">Share</button>
  43. </form>
  44. <script src="~/plugins/jquery/jquery.js" type="text/javascript"></script>
  45. <script type="text/javascript">
  46. var filesUploaded = document.getElementById("filesUploaded");
  47. $('#fileInput').change(function() {
  48. var files = $('#fileInput')[0].files
  49. for (var i = 0; i < files.length; i++){
  50. filesUploaded.innerHTML +='<p>' + files[i].name + '</p>';
  51. }
  52. });
  53. var selectedFiles;
  54. $(document).ready(() => {
  55. var box;
  56. box = document.getElementById("dropContainer");
  57. box.addEventListener("dragenter", OnDragEnter, false);
  58. box.addEventListener("dragover", OnDragOver, false);
  59. box.addEventListener("drop", OnDrop, false);
  60. })
  61. function OnDragEnter(e) {
  62. e.stopPropagation();
  63. e.preventDefault();
  64. }
  65. function OnDragOver(e) {
  66. e.stopPropagation();
  67. e.preventDefault();
  68. }
  69. function OnDrop(e) {
  70. e.stopPropagation();
  71. e.preventDefault();
  72. var selectedFiles = e.dataTransfer.files;
  73. var formData = new FormData();
  74. var fileInput = document.getElementById("fileInputAsText");
  75. for (var i = 0; i < selectedFiles.length; i++){
  76. formData.append(selectedFiles[i].name, selectedFiles[i]);
  77. }
  78. $.ajax({
  79. url: '/Home/UploadTemporaryFile',
  80. type: "POST",
  81. contentType: false,
  82. processData: false,
  83. data: formData,
  84. success: function (result) {
  85. for (var i = 0; i < selectedFiles.length; i++){
  86. fileInput.value += result + ':' + selectedFiles[i].name + ';';
  87. filesUploaded.innerHTML += '<p>' + selectedFiles[i].name + '</p>';
  88. }
  89. },
  90. error: function (err) {
  91. console.log(err)
  92. }
  93. });
  94. }
  95. </script>