Outlook для IOS и Exchange 2016 — проблемы с ограничениями на размер вложений — вопросы и ответы Microsoft

При попытке отправить электронное письмо из Outlook для IOS, когда размер вложения превышает 35 МБ, мы получаем прикрепленную ошибку (она на итальянском языке, но это означает, что размер черновика должен быть меньше 35 МБ.

Все соединители имеют ограничение в 50 МБ, в файлах web.config у меня намного больше 35 МБ (стандартные настройки EWS — 67108864).

Я начал следовать этой статье:

https://docs.microsoft.com/en-us/Exchange/architecture/client-access/client-message-size-limits?redirectedfrom=MSDN&view=exchserver-2019

а затем я изменил ограничения для OWA и Activesync на 67 МБ.

Кроме того, одно и то же электронное письмо может быть отправлено из приложения IOS Mail (я думаю, оно использует ActiveSync).

Есть предложения?

До свидания, Дарио



Как загрузить файл большего размера, используя тег ввода типа html в LWC

Я реализовал собственный компонент загрузки файла, использующий тег html входного файла и отображающий его как файл просмотра b уттон.

Проблема с компонентом: —

  • При попытке загрузить файл размером более 4 МБ я получаю сообщение об ошибке ниже: —

[AuraClientInputException с сервера] Неожиданный ввод запроса. Ожидаемый формат ввода: «Максимальная длина параметра сообщения составляет 4194304 символа.».

Похоже, ошибка размера кучи вершины.

Как Я читаю загруженный файл?

Я использую FileReader Api для его чтения и запускаю метод вершины для сохранения файла как записи ContentVersion Object в Salesforce.

  this.fileReader = new FileReader (); //устанавливаем функцию загрузки объекта FileReader this.fileReader.onloadend = (() => {this.filecontent = this.fileReader.result; let base64 = 'base64,'; this.content = this.filecontent.indexOf (base64)  + base64.length; this.filecontent = this.filecontent.substring (this.content);//сохранение файла путем вызова метода вершины saveTheFile ({parentId: 'a8pq00000001w4QAAQ', fileName: this.fileName, base64Data: encodeURIComponent (this  .filecontent)}). then (result => {window.console.log ('result ====>' + result);}) .catch (error => {//Отображение ошибок, если они есть, при вставке окна с файлами  .console.log (ошибка);});});  this.fileReader.readAsDataURL (this.file);  

Почему я не могу использовать компонент Lightning FileUpload?

Этот компонент загружает документ, как только пользователь выбирает файл в окне просмотра, но наша цель — загружать файлы только тогда, когда мы нажимаем определенную кнопку загрузки. У него также нет атрибута максимального размера файла.


На данный момент вам нужно будет реализовать обходные пути, если вам нужны специальные функции для загрузки файлов.

Максимальный предел содержимого для методов AuraEnabled, как упомянул Пранай Джайсвал, составляет 4 МБ, который также уменьшается, когда он кодируется в base64, и дает вам окончательный предел размера около 1. 5–2 МБ, которые вы сможете загрузить.

Один из обходных путей будет включать использование Chatter Rest API, и он будет поддерживать файлы размером до 2 ГБ, как упомянул Брайан Андерсон.

Вот что я получил по этому вопросу. Недавно у меня было одно такое требование, которое требовало загрузки до 30 МБ файлов с использованием input (type = file). Об использовании AuraEnabled не могло быть и речи, и у меня действительно не было времени реализовать решение с использованием Chatter Rest API. Итак, я реализовал это:

Решение включает использование набора инструментов AJAX и страницы Visualforce, которые помогли мне преодолеть проблему сеанса с включенным API в контексте молнии.

HTML файл:

   

Контроллер JS:

  import {LightningElement} from 'lwc'; экспорт класса по умолчанию ApiConnector расширяет LightningElement {recordid = '';  connectedCallback () {window.addEventListener ('сообщение', (сообщение) => {console.log (message.data);});  } toBase64 = file => new Promise ((разрешить, отклонить) => {const reader = new FileReader (); reader.readAsDataURL (file); reader.onload = () => {let result = reader.result; let base64  = 'base64,'; let content = result.indexOf (base64) + base64.length; let fileContents = result.substring (content); resolve (fileContents);} reader.onerror = error => reject (error);})  ;  async handleFilesChange (событие) {if (event.target.files.length> 0) {this.file = {parentRec: this.recordid, fileName: event.target.files [0] .name, fileContent: await this.toBase64 (  event.target.files [0])}}} fireToVF () {this.fireToComponent (this.file);  } fireToComponent (сообщение) {this.template.querySelector ('iframe'). contentWindow.postMessage (сообщение, '*');  }}  

Страница Visualforce в iframe:

    __ sfdcSessionId = '{! $ Api.Session_Id}';     function uploadContentVersion (recordId, filename, filecontent) {var contentVersion = new sforce.SObject ('ContentVersion');  contentVersion.Title = имя файла;  contentVersion.PathOnClient = '/' + имя файла;  contentVersion.FirstPublishLocationId = recordId;  contentVersion.VersionData = filecontent;  var results = sforce.connection.create ([contentVersion]);  for (var i = 0; i  {console.log (message.data); var file = message.data; uploadContentVersion (file.parentRec, file.fileName, file.fileContent);})  ;  window.parent.postMessage ('loaded', "*")   

Обратите внимание, что это просто пример и может не выполнять требования безопасности, необходимые для PostMessage API (проверяет происхождение и источник).

Поскольку инструментарий AJAX использует внутри себя SOAP API, он имеет максимальный лимит 50 МБ, что из-за Base64 Кодирование будет уменьшено с 30-35 МБ в зависимости от содержимого в документе.

Я также пытался получить идентификатор сеанса с включенным API со страницы Visualforce и нажать Rest api непосредственно из LWC, но выборка POST запрос вернул 302 и перенаправил браузер, чтобы сделать запрос GET, мне любопытно, разрешает ли SF метод POST поверх Rest API из LWC/Lightning Context.

Оцените статью
clickpad.ru
Добавить комментарий