您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

Index.cshtml 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. <div class="mb-3">
  9. <label class="label-text">Sharing link avaliability</label>
  10. <div class="button-box row">
  11. <div class="single-button-input col-4">
  12. <input id="OneTime" checked="checked" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_TIME">
  13. <label for="OneTime" class="label-available"><span style="color:#FFA463">One</span> Time</label>
  14. </div>
  15. <div class="single-button-input d-none">
  16. <input id="OneHour" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_HOUR"/> <label for="OneHour" class="label-available">1 hour</label>
  17. </div>
  18. <div class="single-button-input col-4">
  19. <input id="OneDay" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_DAY"/> <label for="OneDay" class="label-available">1 day</label>
  20. </div>
  21. <div class="single-button-input col-4">
  22. <input id="SevenDays" class="radio-input" type="radio" asp-for="ChosenPeriod" value="@PeriodOfValidity.ONE_WEEK"/> <label for="SevenDays" class="label-available">7 days</label>
  23. </div>
  24. </div>
  25. </div>
  26. <div class="mb-3">
  27. <label class="label-text">Message (optional)</label>
  28. <textarea asp-for="Text" class="input-message"></textarea>
  29. </div>
  30. <div class="mb-3">
  31. <label class="label-text">Upload files</label>
  32. <div id="dropContainer" class="drop-here">
  33. <img class="image-file-upload" src="~/img/file-upload-image.png" alt=""/>
  34. <div class="default-text text-files-upload">
  35. <label for="fileInput" class="btn browse-button">
  36. <span style="color:#0D1C52">Drag and drop files here or</span> browse
  37. </label>
  38. <input asp-for="Files" id="fileInput" type="file" multiple style="display: none"/>
  39. <input asp-for="FilesAsText" id="fileInputAsText" type="text" style="display:none" value="978682e8-3ce7-4258-b731-d027b5b213aa"/>
  40. </div>
  41. </div>
  42. </div>
  43. <div class="mb-3">
  44. <div class="label-text">
  45. Your files
  46. </div>
  47. <div id="filesUploaded">
  48. </div>
  49. </div>
  50. <div class="mb-3">
  51. <label class="label-text">Should link be visible outside diligent network?</label>
  52. <div class="button-box row">
  53. <div class="single-button-input col-4">
  54. <input id="Anonymous" class="radio-input" type="checkbox" asp-for="Anonymous" value="true">
  55. <label for="Anonymous" class="label-available">Anonymous share</label>
  56. </div>
  57. </div>
  58. </div>
  59. @* TODO: https://www.w3schools.com/howto/howto_css_switch.asp *@
  60. <div class="mb-3">
  61. <label class="label-text">Should content be edited after posting?</label>
  62. <div class="button-box row">
  63. <div class="single-button-input col-4">
  64. <input id="AllowEditing" class="radio-input" type="checkbox" asp-for="AllowEditing" value="true">
  65. <label for="AllowEditing" class="label-available">Allow editing</label>
  66. </div>
  67. </div>
  68. </div>
  69. <button class=" btn btn-light share-button" type="submit">Share</button>
  70. </form>
  71. <script src="~/plugins/jquery/jquery.js" type="text/javascript"></script>
  72. <script type="text/javascript">
  73. var filesUploaded = document.getElementById("filesUploaded");
  74. $('#fileInput').change(function() {
  75. var files = $('#fileInput')[0].files
  76. for (var i = 0; i < files.length; i++){
  77. filesUploaded.innerHTML +='<p>' + files[i].name + '</p>';
  78. }
  79. });
  80. var selectedFiles;
  81. $(document).ready(() => {
  82. var box;
  83. box = document.getElementById("dropContainer");
  84. box.addEventListener("dragenter", OnDragEnter, false);
  85. box.addEventListener("dragover", OnDragOver, false);
  86. box.addEventListener("drop", OnDrop, false);
  87. })
  88. function OnDragEnter(e) {
  89. e.stopPropagation();
  90. e.preventDefault();
  91. }
  92. function OnDragOver(e) {
  93. e.stopPropagation();
  94. e.preventDefault();
  95. }
  96. function OnDrop(e) {
  97. e.stopPropagation();
  98. e.preventDefault();
  99. var selectedFiles = e.dataTransfer.files;
  100. var formData = new FormData();
  101. var fileInput = document.getElementById("fileInputAsText");
  102. for (var i = 0; i < selectedFiles.length; i++){
  103. formData.append(selectedFiles[i].name, selectedFiles[i]);
  104. }
  105. $.ajax({
  106. url: '/Home/UploadTemporaryFile',
  107. type: "POST",
  108. contentType: false,
  109. processData: false,
  110. data: formData,
  111. success: function (result) {
  112. for (var i = 0; i < selectedFiles.length; i++){
  113. fileInput.value += result + ':' + selectedFiles[i].name + ';';
  114. filesUploaded.innerHTML += '<p>' + selectedFiles[i].name + '</p>';
  115. }
  116. },
  117. error: function (err) {
  118. console.log(err)
  119. }
  120. });
  121. }
  122. </script>