listFile.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. What to implemetenation
  3. -thumbnail
  4. -search
  5. */
  6. //Help function for converting byte to human readable format
  7. function bytesToSize(bytes) {
  8. var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
  9. if (bytes == 0) return '0 Byte';
  10. var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
  11. return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];
  12. }
  13. var loadedImage = requirelib("imagelib");
  14. if (!loadedImage) {
  15. console.log("Failed to load lib imagelib, terminated.");
  16. }
  17. var loadedfile = requirelib("filelib");
  18. if (!loadedfile) {
  19. console.log("Failed to load lib filelib, terminated.");
  20. }
  21. //Get all the files filesize on desktop
  22. //folder = "user:/Photo/Photo/uploads/"
  23. folder = JSON.parse(POST_data)["folder"];
  24. var fileList = filelib.glob(folder + "*.*");
  25. var results = [];
  26. for (var i = 0; i < fileList.length; i++) {
  27. if (!filelib.isDir(fileList[i])) { //Well I don't had isFile, then use !isDir have same effect.
  28. var subFilename = fileList[i].split(".").pop().toLowerCase();
  29. if (["jpg", "jpeg", "gif", "png"].indexOf(subFilename) >= 0) {
  30. //imagelib.resizeImage(src, dest, width, height)
  31. var filename = fileList[i].split("/").pop();
  32. var fileSize = filelib.filesize(fileList[i]);
  33. var dimension = imagelib.getImageDimension(folder + filename);
  34. filelib.mkdir(folder + "thumbnails/");
  35. var thumbnailsPath = folder + "thumbnails/" + filename;
  36. if (!filelib.fileExists(thumbnailsPath)) {
  37. var success = imagelib.resizeImage(fileList[i], thumbnailsPath, 200, 0);
  38. if (success) {} else {
  39. sendResp("Failed to resize image");
  40. }
  41. }
  42. results.push({
  43. src: "/media/?file=" + folder + filename,
  44. caption: filename,
  45. Size: bytesToSize(fileSize),
  46. thumbnail: "/media/?file=" + thumbnailsPath,
  47. thumbnailHeight: dimension[1],
  48. thumbnailWidth: dimension[0]
  49. });
  50. }
  51. }
  52. }
  53. sendJSONResp(JSON.stringify(results));