medere.html 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>File Uploader</title>
  5. <style>
  6. body {
  7. font-family: Arial, sans-serif;
  8. background-color: #f5f5f5;
  9. padding: 20px;
  10. }
  11. #container {
  12. display: flex;
  13. flex-direction: column;
  14. align-items: center;
  15. justify-content: center;
  16. height: 100vh;
  17. }
  18. #list {
  19. margin-bottom: 20px;
  20. }
  21. .file-row {
  22. display: flex;
  23. align-items: center;
  24. margin-bottom: 10px;
  25. }
  26. .file-name {
  27. flex-grow: 1;
  28. }
  29. .file-size {
  30. margin-left: 10px;
  31. }
  32. #pick {
  33. padding: 10px 20px;
  34. font-size: 16px;
  35. background-color: #007bff;
  36. color: #fff;
  37. border: none;
  38. cursor: pointer;
  39. }
  40. #pick:hover {
  41. background-color: #0056b3;
  42. }
  43. </style>
  44. </head>
  45. <body>
  46. <div id="container">
  47. <h1>File Uploader</h1>
  48. <form>
  49. <div id="list"></div>
  50. <input type="button" id="pick" value="Upload">
  51. </form>
  52. </div>
  53. <script src="https://cdnjs.cloudflare.com/ajax/libs/plupload/3.1.5/plupload.full.min.js"></script>
  54. <script>
  55. window.onload = () => {
  56. var list = document.getElementById("list");
  57. var uploader = new plupload.Uploader({
  58. runtimes: "html5",
  59. browse_button: "pick",
  60. url: "chunk.php",
  61. chunk_size: "5mb",
  62. init: {
  63. PostInit: () => list.innerHTML = "<div>Ready</div>",
  64. FilesAdded: (up, files) => {
  65. plupload.each(files, file => {
  66. let row = document.createElement("div");
  67. row.className = "file-row";
  68. row.id = file.id;
  69. row.innerHTML = `
  70. <div class="file-name"><a href="uploads/${file.name}">${file.name}</a></div>
  71. <div class="file-size">(${plupload.formatSize(file.size)})</div>
  72. <strong></strong>
  73. `;
  74. list.appendChild(row);
  75. });
  76. uploader.start();
  77. },
  78. UploadProgress: (up, file) => {
  79. document.querySelector(`#${file.id} strong`).innerHTML = `${file.percent}%`;
  80. },
  81. Error: (up, err) => console.error(err)
  82. }
  83. });
  84. uploader.init();
  85. };
  86. </script>
  87. </body>
  88. </html>