Browse Source

[fix] routing error on get /room/* replaced route to get file with /file/

encrypt 4 years ago
parent
commit
7789945247
2 changed files with 10 additions and 6 deletions
  1. 3 3
      client/main.js
  2. 7 3
      server/server.rb

+ 3 - 3
client/main.js

@@ -15,7 +15,7 @@ var Uploader = {
 
     getFile: function(fileName, callback) {
 	var xhr = new XMLHttpRequest();
-	xhr.open('GET', '/room/'+this.roomId+'/'+encodeURIComponent(fileName), true);
+	xhr.open('GET', '/files/'+this.roomId+'/'+fileName, true);
 	xhr.responseType = 'arraybuffer';
 	xhr.onload = callback;
 	xhr.send();
@@ -144,7 +144,7 @@ var CryptoUploader = {
 	$("#file-list > ul").empty();
 	if(!is_parent) {
 	    var e = $("<li></li>").appendTo("#file-list > ul");
-	    $("<span>⬅️</span> <a>..</a>")
+	    $("<span>⬅️</span> <a>Parent Directory</a>")
 		.on('click', function(e){
 		    var dirs = path.split('/');
 		    dirs.pop();
@@ -173,7 +173,7 @@ var CryptoUploader = {
 			}
 			else {
 			    $("<span>📄</span> <a>"+CryptoUploader.sanitizeHTML(fileName)+"</a>")
-				.on('click', function(e){CryptoUploader.downloadFile(fileName, file.name)})
+				.on('click', function(e){CryptoUploader.downloadFile(fileName, path+'/'+file.name)})
 				.appendTo(e);
 			}
 			$("<span>🗑️</span>")

+ 7 - 3
server/server.rb

@@ -52,7 +52,6 @@ end
 get '/room/:id/*?' do |id,path|
   dir = settings.storage_directory+id
   dir += path_is_base32?(path) ? '/'+path : ''
-  puts dir
   if Dir.exist?(dir)
     content_type 'text/json'
     Dir.glob(dir+'/*').map { |f|
@@ -93,8 +92,13 @@ end
 
 # get a file
 
-get '/room/file/:id/:filename' do |id, filename|
-  send_file File.join(settings.storage_directory+id, filename)
+get '/files/:id/*?' do |id, filename|
+  puts filename
+  if path_is_base32?(filename)
+    send_file File.join(settings.storage_directory+id, filename)
+  else
+    404
+  end
 end
 
 # remove a file