diff --git a/misc/upload.js b/misc/upload.js
index b4d2a9b6d746b907648bad82b8fd51c056aa33c9..89f7cfb69e785609a2b63092568c36991b196825 100644
--- a/misc/upload.js
+++ b/misc/upload.js
@@ -12,7 +12,8 @@ function uploadAutoAttach() {
   for (i = 0; input = inputs[i]; i++) {
     if (input && hasClass(input, 'upload')) {
       var uri = input.value;
-      var button = input.id.substr(5);
+      // Extract the button ID based on a subtring of the input name: edit[foo][bar] -> foo-bar
+      var button = input.name.substr(5, input.name.length - 6).replace('][', '-');
       var wrapper = button + '-wrapper';
       var hide = button + '-hide';
       var upload = new jsUpload(uri, button, wrapper, hide);