Почтовый плагин Grails: attach org.springframework.web.multipart.commons.CommonsMultipartFile - PullRequest
0 голосов
/ 19 мая 2011

Я не могу понять, как сделать вложения.Установленный плагин "mail" и рассматриваемый файл - это .csv, загружаемый (успешно) из формы.

Это работает:

def f = request.getFile('uploadedFile')
//do a bunch of stuff with f and make bodyString
MailService.sendMail {
  to "myemail@secretplace.com"
  subject "subject"
  body bodyString
}

Это не:

def f = request.getFile('uploadedFile')
//do a bunch of stuff with f and make bodyString
MailService.sendMail {
  multipart true
  to "myemail@secretplace.com"
  subject "subject"
  body bodyString
  attach "myfile.csv", f
}

Ах да, ошибка говорит это:

groovy.lang.MissingMethodException: No signature of method: my_project.MySweetController.attach() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, org.springframework.web.multipart.commons.CommonsMultipartFile) values: [Demo myfile.csv, org.springframework.web.multipart.commons.CommonsMultipartFile@73e2d16b]
Possible solutions: each(groovy.lang.Closure)

1 Ответ

2 голосов
/ 19 мая 2011

Если вы используете почтовый плагин версии 0.9 или новее, должно работать следующее

def f = request.getFile('uploadedFile')

//do a bunch of stuff with f and make bodyString
MailService.sendMail {
  multipart true
  to "myemail@secretplace.com"
  subject "subject"
  body bodyString
  attachBytes "Some-File-Name.csv", "text/csv", f.bytes
}

кстати, имя вашей ссылки на почтовый сервис MailService является своеобразным. Если вы получаете ссылку на этот сервис, автоматически подключая bean-компонент Spring, я ожидаю, что он будет mailService

...