選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

LinkEdit.cshtml 3.0KB

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