Создайте объект Файла Java (или эквивалентный) использование массива байтов в памяти (без физического файла)

Попробуйте это

body: Column( children: [ Text('foo'), Expanded( child: Container( child: ListView.builder( shrinkWrap: true, itemBuilder: ......., itemCount: ....., ), ), ), Text('bar') ] ) ,

Этот код работал для меня.

7
задан SW4 21 May 2014 в 10:59
поделиться

5 ответов

Можно ли вставить полное отслеживание стека? Нет такой вещи как "в памяти" файл. Используя ByteArrayInputStream должно быть достаточным.

<час>

необходимо реализовать Resource#getFilename (). Попробуйте следующее:

helper.addInline("cImage", new ByteArrayResource(imageByteArr){
            @Override
            public String getFilename() {
                return fileName;
            }
        });
7
ответ дан 6 December 2019 в 23:13
поделиться

Возможно, необходимо ли использовать другой конструктор InputStreamResource?

4
ответ дан 6 December 2019 в 23:13
поделиться

Возможно, который стоит попробовать другую перегрузку метода:

addInline(String contentId, 
          InputStreamSource inputStreamSource, 
          String contentType) 

Т.е.:

addInline("cImage", 
          new InputStreamSource () 
          {  
             final private InputStream src = 
                                     new ByteArrayInputStream(imageByteArr);
             public InputStream getInputStream() {return src;}
          },
          "image/jpeg"); // or whatever image type you use 
0
ответ дан 6 December 2019 в 23:13
поделиться

Вы попытались изменить ресурс, который Вы подаете к addInline ()? Если бы Вы хотели, чтобы ресурс был в памяти, я попробовал бы org.springframework.core.io. ByteArrayResource.

Обновление: Я думаю, что Вы, возможно, должны были бы использовать версию DataSource addInline (), метод и затем использовать массив байтов связал объект источника данных подать данные в класс помощника. Я попробовал бы следующее:

MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);              
helper.setFrom("no-reply@example.com", "xyz");
helper.setTo(email);
helper.setText(body,true);
helper.setSubject(subject);

// use javax.mail.util.ByteArrayDataSource
ByteArrayDataSource imgDS = new ByteArrayDataSource( imageByteArr, "image/png");
helper.addInline("cImage", imgDS);

mailSender.send(message);
0
ответ дан 6 December 2019 в 23:13
поделиться

Важно правильно создать объект MimeMessageHelper для поддержки вложений и встроенных ресурсов.

Пример: MimeMessageHelper helper = new MimeMessageHelper (message, true, «UTF-8»);

В этом примере, поскольку multipart является со значением true будет использоваться MULTIPART_MODE_MIXED_RELATED, и будут поддерживаться вложения и встроенные ресурсы.

0
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: