【问题标题】:grails: upload files in selected foldergrails:上传所选文件夹中的文件
【发布时间】:2013-12-14 08:32:31
【问题描述】:

在我的 Grails 应用程序中,用户需要将文件上传到正确的文件夹中。 我已经实现(如here 所述)允许将文档上传到适当文件夹的系统,但我需要进行一些修改。 用户可以上传不同类型的文件,因此我为每种要上传的文件创建了文件夹。所以,我需要在文件选择后,用户可以选择必须上传文件的文件夹。 我该怎么做?

编辑: 我认为需要澄清一下。我需要创建的文件夹结构如下:

- Folder
-- Subfolder
--- Sub-subfolder


- base_folder
-- folderOfUser1
---  folderOfKind1
---  folderOfKind2
---  folderOfKindN

-- folderOfUser2
---  folderOfKind1
---  folderOfKind2
---  folderOfKindN

-- folderOfUserN 
---  folderOfKind1
---  folderOfKind2
---  folderOfKindN

所以如果我不能使用 Sergio 的解决方案,因为我有“folderOfUserN”,只有在运行时才知道

【问题讨论】:

    标签: file grails upload directory


    【解决方案1】:

    看你的链接,好像需要修改你的配置逻辑:

    environments {
        development {
            uploadFolders = [
              pdf : "c:/temp/upload/{username}/pdf",
              png : "c:/temp/upload/{username}/images",
              gif : "c:/temp/upload/{username}/images",
            ]
        }
        test {
            uploadFolder = [...]
        }
        production {
            uploadFolder = [...]
        }
    }
    

    编辑

    当您检索上传路径时,将 {username} 替换为当前用户名。放置此逻辑的最佳位置是在服务中。假设您使用的是 Spring Security:

    class UploadService {
    
      static transactional = false //no need to transactions in this service
    
      static final String PLACEHOLDER = "{username}"
    
      def grailsApplication
    
      def springSecurityService
    
      String getFolderByTpeAndUser(String type) {
        def user = springSecurityService.currentUser
        def path = config[type]?.replace(PLACEHOLDER, user.username)
        return path
      }
    
      def getConfig() {
        return grailsApplication.config.uploadFolders
      }
    
    }
    

    然后您需要在显示此选项的视图中添加一个g:select,并更改DocumentController 以反映用户选择的选项。

    【讨论】:

    • 这是一个很好的答案,但不完全适合我的问题。我对上面的帖子进行了一些澄清。谢谢
    • folderOfUser 是他的用户名吗?只需在控制器中处理即可。
    • folderOfUser 是他的用户名。如果我按照您的建议有uploadFolders,如何在控制器中处理它?正确的文件夹必须是“c:/temp/upload/username/pdf”等等。你有什么建议?
    • 看我的编辑,你可以使用一些“key”来替换运行时的值。
    • 我唯一的问题是关于“类型”:如果我使用 pdf、png 或 gif 我有一个例外“没有这样的属性”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2017-05-17
    • 2016-12-01
    • 2016-06-22
    • 1970-01-01
    • 2013-02-16
    相关资源
    最近更新 更多