post.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <html>
  2. <head>
  3. <meta charset="utf-8" />
  4. <script src="jquery.js"></script>
  5. <link rel="stylesheet" href="css/tocas.css">
  6. <title>Upload Interface</title>
  7. <script src="jquery.js"></script>
  8. </head>
  9. <body>
  10. <br><br>
  11. <div class="ts container">
  12. <div class="ts slate">
  13. <span class="header">上傳 Gcode</span>
  14. <span class="description">本頁面是以手動方式上傳 Gcode 的界面。雖然能用,但是配合著雲端界面使用的話會更方便就是了。</span>
  15. </div>
  16. <div class="ts horizontal form">
  17. <div class="field">
  18. <label>選擇上載文件</label>
  19. <input id="fileSelector" type="file"></input>
  20. </div>
  21. <div class="field">
  22. <label>上載檔名</label>
  23. <input id="path" type="text" placeholder="filename to be uploaded (with file extension)">
  24. <small>注:必須包含副檔名</small>
  25. </div>
  26. </div>
  27. <br>
  28. <button class="ts primary button" onClick="uploadFile();">Click Me To Upload</button>
  29. <button class="ts basic button" onClick="loadFileList();">Refresh FileList</button>
  30. <div class="ts segment">
  31. <div>上載資料夾檔案列表</div>
  32. <div id="fileList">
  33. </div>
  34. </div>
  35. </div>
  36. <div id="activeDimmer" class="ts active dimmer" style="display:none;">
  37. <div class="ts text loader">Uploading<br>This might take a while...</div>
  38. </div>
  39. <script>
  40. loadFileList();
  41. $('#fileSelector').change(function(e){
  42. var fullfilepath = $("#fileSelector").val();
  43. var tmp = (fullfilepath.split("\\").join("/")).split("/");
  44. var filename = tmp.pop();
  45. $("#path").val(filename);
  46. });
  47. var progress = 0;
  48. function uploadFile(){
  49. $("#activeDimmer").show();
  50. var input = $("#fileSelector")[0];
  51. var path = $("#path")[0];
  52. if(input.files.length === 0){
  53. return;
  54. }
  55. xmlHttp = new XMLHttpRequest();
  56. var formData = new FormData();
  57. formData.append("data", input.files[0], "/web/upload/" + path.value);
  58. xmlHttp.open("POST", "/upload");
  59. xmlHttp.upload.onprogress = function (e) {
  60. if (e.lengthComputable) {
  61. progress = parseInt(e.loaded / e.total);
  62. }
  63. }
  64. xmlHttp.upload.onloadstart = function (e) {
  65. progress = 0;
  66. }
  67. xmlHttp.upload.onloadend = function (e) {
  68. progress = parseInt(e.loaded / e.total);
  69. window.location.reload();
  70. }
  71. xmlHttp.send(formData);
  72. }
  73. function loadFileList(){
  74. $("#fileList").html("");
  75. $.get("/list?dir=/web/upload",function(data){
  76. for(var i = 0; i < data.length; i++){
  77. if (data[i]["type"] == "file"){
  78. //This is file
  79. $("#fileList").append('<a href="' + data[i]["name"] + '" target="_blank">' + "<i class='file outline icon'></i>" + basename(data[i]["name"]) + "</a><br>");
  80. }else{
  81. //This is dir
  82. $("#fileList").append('<a href="' + data[i]["name"] + '" target="_blank">' + "<i class='folder open outline icon'></i>" + basename(data[i]["name"]) + "</a><br>");
  83. }
  84. }
  85. });
  86. }
  87. function basename(fullpath){
  88. var tmp = fullpath.split("/");
  89. var filename = tmp.pop();
  90. return filename;
  91. }
  92. </script>
  93. </body>
  94. </html>