0

ワークフローの移行では、「ファイルの添付」入力を含む画面があります。事後機能では、添付ファイル(存在する場合)にアクセスし、このファイルを添付ファイルとして別の問題を作成します。

ServletActionContext.getRequest()を介してこれを達成しようとしましたが、アップロードされたファイルをこの方法で取得できないようです。HttpServletRequestにはgetPart()関数がありません。

ポスト関数から添付ファイルにアクセスする公式の方法はありますか?

よろしくお願いします

4

1 に答える 1

0

Naykipapからのこの回答のおかげで、私は実用的な解決策を見つけました。これが私が思いついたものです:

// copy attachments uploaded in screen to new issue
def changeItems = transientVars["changeItems"]
def uploadChanges = changeItems.findAll { item -> item.getField() == "Attachment" && item.getFieldType() == "jira" }

uploadChanges.each { uploadChange ->
  def Attachment attachment = attachmentManager.getAttachment(uploadChange.getTo()?.toLong())
  if (attachment) {
    def filePath = PathUtils.joinPaths(pathManager.attachmentPath, currentIssue.projectObject.key, currentIssue.key, attachment.id.toString())
    def atFile = new File(filePath)
    if (atFile.canRead()) {
        log.debug("Cloning attachment ${attachment.filename}")
        attachmentManager.createAttachmentCopySourceFile(atFile, attachment.filename, attachment.mimetype, attachment.author, newIssue, [:], attachment.created)
    }
  }
}

重要:問題がdbに保存された後、スクリプトを実行する必要があります。それ以外の場合、transientVarsにchangeItemsがないか、添付ファイルがディスクに保存されません。私はそれを実行の最後まで動かしました、そしてそれは私にとってうまくいきました。

于 2012-10-24T09:42:00.260 に答える