如何在Angular JS中将List <MultipartFile>添加到DTO?

问题描述

我使用Angular JS和Java。我想发送一封包含主题内容和附件文件列表的电子邮件。这是DTO。

mailDTO : { String sujetPersonnalise,String messagePersonnalise,List<multipartfile> files }

关于文件,我想与DTO一起发送,将文件附加到MimeMessage上并发送。

我现在在网络上发现的大多数方法是请求将多部分直接上传数据库方法。这不是我想要的。确实,我不想将它们保存在数据库中。我只想使用它们将它们附加到电子邮件中。

我的问题是:

如何在angular js中将multipartfiles添加到DTO?

例如:

HTML

 <div>
   <input type="file" ngf-select="vm.onFileSelect($files)" multiple>
</div>

Controller.js

     vm.onFileSelect = function($files) {
                vm.mailEnvoye.files = $files;
            };

  vm.envoiMail = function() {
            vm.mailEnvoye.messagePersonnalise = vm.messagePersonnalise;
            vm.mailEnvoye.sujetPersonnalise = vm.sujetPersonnalise;
            MailEnvoye.save(vm.mailEnvoye,onSaveMailSucces,onSaveMailError);
        };

邮件服务。 js

MailEnvoye.$inject = ['$resource','DateUtils'];

function MailEnvoye ($resource,DateUtils) {
    var resourceUrl =  'api/mails-envoyes/:id';

    return $resource(resourceUrl,{},{
        'get': {
            method: 'GET',isArray: true,transformResponse: function (data) {
                data = angular.fromJson(data);
                return data;
            }
        },'save': {
            method: 'POST',transformRequest: function (data) {
                return angular.toJson(data);
            }
        }
    });
}

资源

@RequestMapping(value = "/mails-envoyes",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public ResponseEntity<MailEnvoye> createMailEnvoye(@RequestBody MailEnvoye mailEnvoye,HttpServletRequest request) throws URISyntaxException {
    log.debug("REST request to save MailEnvoye : {}",mailEnvoye);
    //Here all process with MimeMessageHelper to set subject,content,...)
   MimeMessageHelper message = new MimeMessageHelper(mimeMessage,isMultipart,CharEncoding.UTF_8);
  
   //Add attachment
    if(mailEnvoye.files != null && mailEnvoye.files.size() > 0){
      for(multipartfile file : mailEnvoye.files){
         message.addAttachment(file.getName(),file);
       }
    }

   //Send 
     javaMailSender.send(mimeMessage);
}
  

    

谢谢

手册

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)