Помимо описанного в интернетах для AJAX загрузки файла на Domino сервер, нашел нигде не описанную вещь с formData.append('%%File', file )!
Пример
с этой формы собираем данные
и отправляем на сервер аяксом
далее разбираем по WQS в агенте на форме UploadOrder, где также SaveOptions=0
(Помните, что если не запускать агент @Command([ToolsRunMacro]; "<Размещение агента>"), то после createdocument, будет вылетать надпись 'Форма обработана'.
Сбор данных с полной формы прекрасно работает, НО не работает конструкция
Пусто в контексте(. Консоль ничего не показывает даже сбором entries.
Все что надо сделать — вместо 'file' указать '%%File' (можно без '%%File.1' если один файл). Вот находка! И это еще регистрозависимое от имени в форме — '%%file' не работает(.
И вуаля! Вот он файл в контексте ctx, который можно разобрать и даже не сохранять. Заюзаьть контроль, например, так
Заменить в Upload.prototype.doUpload = function () {
Естественно, на сервере надо в файле notes.ini прописать DominoDisableFileUploadChecks=1
для отключения error 500 "HTTP Web Server: File Upload Not Allowed Exception"
Еще замечено, что если повысить Анонимуса до Редактора без изменения notes.ini, то File Upload Not Allowed Exception пропадает. Ну, такоэ...
О сколько нам открытий чудных
Готовят просвещенья дух
И Опыт, [сын] ошибок трудных,
И Lotus, [парадоксов] друг,
[И Случай, бог изобретатель]
Пример
HTML:
<form id="UploadFile">
<p><input type="file" id='File1' name="%%File.1" /></p>
</form>
JavaScript:
var formData = new FormData( $( '#UploadFile' )[0] ); //все что в форме
var url = 'UploadOrder?createdocument';
JavaScript:
$.post({
async: false,
cache: false,
url: url,
data: formData,
enctype: "multipart/form-data", //не обязательно
contentType: false, // Important!
processData: false, // Important!
dataType: "json",
success: function(resp){
if ( resp.update == '1' ) {
//тут что-то наше
};
},
error: function(xhr){ console.log('Error '+ xhr.status); }
});
};
(Помните, что если не запускать агент @Command([ToolsRunMacro]; "<Размещение агента>"), то после createdocument, будет вылетать надпись 'Форма обработана'.
Ссылка скрыта от гостей
, например, об этом пишет
Ссылка скрыта от гостей
)
Visual Basic:
Dim ns As New NotesSession
Dim ctx As NotesDocument
Set ctx = ns.DocumentContext
If ctx.HasEmbedded Then
''= Это работатет
''https://codeby.net/threads/ne-ponjatnyj-gljuk-embeddedobjects.37877/
Forall obj In ctx.Items
If obj.name = "$FILE" Then
filename$ = obj.values(0)
''Messagebox( filename$ )
''Call ctx.ReplaceItemValue("SaveOptions" ,"1") ''И даже не надо сохранять !!!!
FileExt$=Ucase$(Right$(filename$,Len(filename$)-Instr(filename$,"."))) ' расширение
Set fobj = ctx.GetAttachment( fileName$ )
''Messagebox( fobj.FileSize )
If FileExt$ = "CSV" Then ''Только файлы .csv !!!
'' тут тоже что-то наше
End If
End If
End Forall
End If
Print |Content-type: application/json; charset=utf-8|
Print ||
Print |{"shopcart":"|+SessionID$+|","filename":"|+filename+|","update":"|+Cstr(update)+|","inputstrcount":"|+Cstr(InputStrCount)+|","doccount":"|+Cstr(doccount)+|","jsonerror":|+Cstr(jsonString)+|,"errormsg":"|+ErrorMsg+|"}|
Сбор данных с полной формы прекрасно работает, НО не работает конструкция
JavaScript:
var file = $('#File1')[0].files[0];
var formData = new FormData();
formData.append('file', file);
for (var key in formData.entries() ) {
console.log(key, formData[key]);
}
Все что надо сделать — вместо 'file' указать '%%File' (можно без '%%File.1' если один файл). Вот находка! И это еще регистрозависимое от имени в форме — '%%file' не работает(.
JavaScript:
var file = $('#File1')[0].files[0];
//var file = $('[name="%%File.1"]')[0].files[0]; //или так
var formData = new FormData();
formData.append('%%File', file ); //Это на Domino прекрасно работает!
Ссылка скрыта от гостей
mosh-feuЗаменить в Upload.prototype.doUpload = function () {
Код:
//formData.append("file", this.file, this.getName()); //так в Domino не грузится!!!!!!!!!!!!!!!
formData.append("%%File", this.file, this.getName());
Естественно, на сервере надо в файле notes.ini прописать DominoDisableFileUploadChecks=1
для отключения error 500 "HTTP Web Server: File Upload Not Allowed Exception"
Еще замечено, что если повысить Анонимуса до Редактора без изменения notes.ini, то File Upload Not Allowed Exception пропадает. Ну, такоэ...
О сколько нам открытий чудных
Готовят просвещенья дух
И Опыт, [сын] ошибок трудных,
И Lotus, [парадоксов] друг,
[И Случай, бог изобретатель]
Последнее редактирование: