Uploadcollection sending files but can't be opened?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
Here is the thing. I'm trying to upload and send files from my app to a sap gateway by using UploadCollection sapui5 and a post request using ajax.
I was asked to send every single file in a xstring format (one by one), so the backend service can return a proper response.
This is how I'm trying to get the uploaded files content
new sap.m.UploadCollection({
id: 'upFiles',
numberOfAttachmentsText: 'Adjuntar archivos',
showSeparators: 'All',
fileType: ['jpg','jpeg','png','pdf','ods','pptx','xlsm','docx','doc', 'odt', 'docm','ppt','xlsx','rar','zip'],
noDataText: 'No se han cargado archivos todavia',
class: 'docpago-upload',
uploadUrl: '/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet',
maximumFilenameLength: 120,
maximumFileSize: 10,
multiple: true,
uploadEnabled: true,
terminationEnabled: true,
change: function(oEvent) {
var file = oEvent.getParameter("files");
var numfiles = oEvent.getParameter("files").length;
}
});
And this is how I'm trying to send files through an ajax post request
jQuery.ajax({
url: sUrlUpload,
type: "POST",
data: file, //Files I want to send
contentType: "application/json",
datatype : "text",
headers: {
'X-CSRF-Token': token, //token generated to send request
'slug': slug //a parameter I need to do some stuff
},
success: function (data, textStatus, XMLHttpRequest) {
console.log('Uploaded files: ' + JSON.stringify(data));
},
error: function(oError) {
console.log('Error: ' + JSON.stringify(oError.responseText))
}
});
For some reason, In the sap gateway side, files are successfully uploaded but not even single one can be open because the programs say "invalid format", "corrupted file" etc etc. And I think is because I'm not passing the file's content in a proper way. Any idea what could be wrong?
javascript file sapui5
add a comment |
Here is the thing. I'm trying to upload and send files from my app to a sap gateway by using UploadCollection sapui5 and a post request using ajax.
I was asked to send every single file in a xstring format (one by one), so the backend service can return a proper response.
This is how I'm trying to get the uploaded files content
new sap.m.UploadCollection({
id: 'upFiles',
numberOfAttachmentsText: 'Adjuntar archivos',
showSeparators: 'All',
fileType: ['jpg','jpeg','png','pdf','ods','pptx','xlsm','docx','doc', 'odt', 'docm','ppt','xlsx','rar','zip'],
noDataText: 'No se han cargado archivos todavia',
class: 'docpago-upload',
uploadUrl: '/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet',
maximumFilenameLength: 120,
maximumFileSize: 10,
multiple: true,
uploadEnabled: true,
terminationEnabled: true,
change: function(oEvent) {
var file = oEvent.getParameter("files");
var numfiles = oEvent.getParameter("files").length;
}
});
And this is how I'm trying to send files through an ajax post request
jQuery.ajax({
url: sUrlUpload,
type: "POST",
data: file, //Files I want to send
contentType: "application/json",
datatype : "text",
headers: {
'X-CSRF-Token': token, //token generated to send request
'slug': slug //a parameter I need to do some stuff
},
success: function (data, textStatus, XMLHttpRequest) {
console.log('Uploaded files: ' + JSON.stringify(data));
},
error: function(oError) {
console.log('Error: ' + JSON.stringify(oError.responseText))
}
});
For some reason, In the sap gateway side, files are successfully uploaded but not even single one can be open because the programs say "invalid format", "corrupted file" etc etc. And I think is because I'm not passing the file's content in a proper way. Any idea what could be wrong?
javascript file sapui5
add a comment |
Here is the thing. I'm trying to upload and send files from my app to a sap gateway by using UploadCollection sapui5 and a post request using ajax.
I was asked to send every single file in a xstring format (one by one), so the backend service can return a proper response.
This is how I'm trying to get the uploaded files content
new sap.m.UploadCollection({
id: 'upFiles',
numberOfAttachmentsText: 'Adjuntar archivos',
showSeparators: 'All',
fileType: ['jpg','jpeg','png','pdf','ods','pptx','xlsm','docx','doc', 'odt', 'docm','ppt','xlsx','rar','zip'],
noDataText: 'No se han cargado archivos todavia',
class: 'docpago-upload',
uploadUrl: '/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet',
maximumFilenameLength: 120,
maximumFileSize: 10,
multiple: true,
uploadEnabled: true,
terminationEnabled: true,
change: function(oEvent) {
var file = oEvent.getParameter("files");
var numfiles = oEvent.getParameter("files").length;
}
});
And this is how I'm trying to send files through an ajax post request
jQuery.ajax({
url: sUrlUpload,
type: "POST",
data: file, //Files I want to send
contentType: "application/json",
datatype : "text",
headers: {
'X-CSRF-Token': token, //token generated to send request
'slug': slug //a parameter I need to do some stuff
},
success: function (data, textStatus, XMLHttpRequest) {
console.log('Uploaded files: ' + JSON.stringify(data));
},
error: function(oError) {
console.log('Error: ' + JSON.stringify(oError.responseText))
}
});
For some reason, In the sap gateway side, files are successfully uploaded but not even single one can be open because the programs say "invalid format", "corrupted file" etc etc. And I think is because I'm not passing the file's content in a proper way. Any idea what could be wrong?
javascript file sapui5
Here is the thing. I'm trying to upload and send files from my app to a sap gateway by using UploadCollection sapui5 and a post request using ajax.
I was asked to send every single file in a xstring format (one by one), so the backend service can return a proper response.
This is how I'm trying to get the uploaded files content
new sap.m.UploadCollection({
id: 'upFiles',
numberOfAttachmentsText: 'Adjuntar archivos',
showSeparators: 'All',
fileType: ['jpg','jpeg','png','pdf','ods','pptx','xlsm','docx','doc', 'odt', 'docm','ppt','xlsx','rar','zip'],
noDataText: 'No se han cargado archivos todavia',
class: 'docpago-upload',
uploadUrl: '/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet',
maximumFilenameLength: 120,
maximumFileSize: 10,
multiple: true,
uploadEnabled: true,
terminationEnabled: true,
change: function(oEvent) {
var file = oEvent.getParameter("files");
var numfiles = oEvent.getParameter("files").length;
}
});
And this is how I'm trying to send files through an ajax post request
jQuery.ajax({
url: sUrlUpload,
type: "POST",
data: file, //Files I want to send
contentType: "application/json",
datatype : "text",
headers: {
'X-CSRF-Token': token, //token generated to send request
'slug': slug //a parameter I need to do some stuff
},
success: function (data, textStatus, XMLHttpRequest) {
console.log('Uploaded files: ' + JSON.stringify(data));
},
error: function(oError) {
console.log('Error: ' + JSON.stringify(oError.responseText))
}
});
For some reason, In the sap gateway side, files are successfully uploaded but not even single one can be open because the programs say "invalid format", "corrupted file" etc etc. And I think is because I'm not passing the file's content in a proper way. Any idea what could be wrong?
javascript file sapui5
javascript file sapui5
edited Nov 16 '18 at 18:46
devtester
asked Nov 16 '18 at 18:39
devtesterdevtester
287
287
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
How does your MGW_APPL_SRV_RUNTIME~CREATE_STREAM implementation looks like?
Should be something like this:
METHOD /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_STREAM.
DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,
lt_key_tab TYPE /iwbep/t_mgw_name_value_pair,
ls_document TYPE <YOUR TABLE>,
lv_documentid TYPE char100.
CASE iv_entity_name.
WHEN '<YOUR ENTITY NAME>'.
READ TABLE it_key_tab WITH KEY name = 'DocumentId' INTO ls_key_tab.
ls_document-documentid = ls_key_tab-value.
ls_document-mimetype = is_media_resource-mime_type.
ls_document-filename = iv_slug.
ls_document-value = is_media_resource-value.
ls_document-sydate = sy-datum.
ls_document-sytime = sy-uzeit.
DELETE FROM <YOUR TABLE> WHERE documentid = ls_document-documentid.
INSERT INTO <YOUR TABLE> VALUES ls_document.
fileupdset_get_entity(
EXPORTING
iv_entity_name = iv_entity_name
iv_entity_set_name = iv_entity_set_name
iv_source_name = iv_source_name
it_key_tab = it_key_tab
it_navigation_path = it_navigation_path
IMPORTING
er_entity = ls_document ).
copy_data_to_ref( EXPORTING is_data = ls_document
CHANGING cr_data = er_entity ).
ENDCASE.
ENDMETHOD.
On your table you should have a field, something like DocumentId that will serve as primary key.
You can then call the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')"
To retrieve the file you can simply make a GET request to the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')/$value"
Good examples here and here. Hope that helps!
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53343617%2fuploadcollection-sending-files-but-cant-be-opened%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
How does your MGW_APPL_SRV_RUNTIME~CREATE_STREAM implementation looks like?
Should be something like this:
METHOD /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_STREAM.
DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,
lt_key_tab TYPE /iwbep/t_mgw_name_value_pair,
ls_document TYPE <YOUR TABLE>,
lv_documentid TYPE char100.
CASE iv_entity_name.
WHEN '<YOUR ENTITY NAME>'.
READ TABLE it_key_tab WITH KEY name = 'DocumentId' INTO ls_key_tab.
ls_document-documentid = ls_key_tab-value.
ls_document-mimetype = is_media_resource-mime_type.
ls_document-filename = iv_slug.
ls_document-value = is_media_resource-value.
ls_document-sydate = sy-datum.
ls_document-sytime = sy-uzeit.
DELETE FROM <YOUR TABLE> WHERE documentid = ls_document-documentid.
INSERT INTO <YOUR TABLE> VALUES ls_document.
fileupdset_get_entity(
EXPORTING
iv_entity_name = iv_entity_name
iv_entity_set_name = iv_entity_set_name
iv_source_name = iv_source_name
it_key_tab = it_key_tab
it_navigation_path = it_navigation_path
IMPORTING
er_entity = ls_document ).
copy_data_to_ref( EXPORTING is_data = ls_document
CHANGING cr_data = er_entity ).
ENDCASE.
ENDMETHOD.
On your table you should have a field, something like DocumentId that will serve as primary key.
You can then call the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')"
To retrieve the file you can simply make a GET request to the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')/$value"
Good examples here and here. Hope that helps!
add a comment |
How does your MGW_APPL_SRV_RUNTIME~CREATE_STREAM implementation looks like?
Should be something like this:
METHOD /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_STREAM.
DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,
lt_key_tab TYPE /iwbep/t_mgw_name_value_pair,
ls_document TYPE <YOUR TABLE>,
lv_documentid TYPE char100.
CASE iv_entity_name.
WHEN '<YOUR ENTITY NAME>'.
READ TABLE it_key_tab WITH KEY name = 'DocumentId' INTO ls_key_tab.
ls_document-documentid = ls_key_tab-value.
ls_document-mimetype = is_media_resource-mime_type.
ls_document-filename = iv_slug.
ls_document-value = is_media_resource-value.
ls_document-sydate = sy-datum.
ls_document-sytime = sy-uzeit.
DELETE FROM <YOUR TABLE> WHERE documentid = ls_document-documentid.
INSERT INTO <YOUR TABLE> VALUES ls_document.
fileupdset_get_entity(
EXPORTING
iv_entity_name = iv_entity_name
iv_entity_set_name = iv_entity_set_name
iv_source_name = iv_source_name
it_key_tab = it_key_tab
it_navigation_path = it_navigation_path
IMPORTING
er_entity = ls_document ).
copy_data_to_ref( EXPORTING is_data = ls_document
CHANGING cr_data = er_entity ).
ENDCASE.
ENDMETHOD.
On your table you should have a field, something like DocumentId that will serve as primary key.
You can then call the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')"
To retrieve the file you can simply make a GET request to the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')/$value"
Good examples here and here. Hope that helps!
add a comment |
How does your MGW_APPL_SRV_RUNTIME~CREATE_STREAM implementation looks like?
Should be something like this:
METHOD /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_STREAM.
DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,
lt_key_tab TYPE /iwbep/t_mgw_name_value_pair,
ls_document TYPE <YOUR TABLE>,
lv_documentid TYPE char100.
CASE iv_entity_name.
WHEN '<YOUR ENTITY NAME>'.
READ TABLE it_key_tab WITH KEY name = 'DocumentId' INTO ls_key_tab.
ls_document-documentid = ls_key_tab-value.
ls_document-mimetype = is_media_resource-mime_type.
ls_document-filename = iv_slug.
ls_document-value = is_media_resource-value.
ls_document-sydate = sy-datum.
ls_document-sytime = sy-uzeit.
DELETE FROM <YOUR TABLE> WHERE documentid = ls_document-documentid.
INSERT INTO <YOUR TABLE> VALUES ls_document.
fileupdset_get_entity(
EXPORTING
iv_entity_name = iv_entity_name
iv_entity_set_name = iv_entity_set_name
iv_source_name = iv_source_name
it_key_tab = it_key_tab
it_navigation_path = it_navigation_path
IMPORTING
er_entity = ls_document ).
copy_data_to_ref( EXPORTING is_data = ls_document
CHANGING cr_data = er_entity ).
ENDCASE.
ENDMETHOD.
On your table you should have a field, something like DocumentId that will serve as primary key.
You can then call the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')"
To retrieve the file you can simply make a GET request to the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')/$value"
Good examples here and here. Hope that helps!
How does your MGW_APPL_SRV_RUNTIME~CREATE_STREAM implementation looks like?
Should be something like this:
METHOD /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_STREAM.
DATA: ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,
lt_key_tab TYPE /iwbep/t_mgw_name_value_pair,
ls_document TYPE <YOUR TABLE>,
lv_documentid TYPE char100.
CASE iv_entity_name.
WHEN '<YOUR ENTITY NAME>'.
READ TABLE it_key_tab WITH KEY name = 'DocumentId' INTO ls_key_tab.
ls_document-documentid = ls_key_tab-value.
ls_document-mimetype = is_media_resource-mime_type.
ls_document-filename = iv_slug.
ls_document-value = is_media_resource-value.
ls_document-sydate = sy-datum.
ls_document-sytime = sy-uzeit.
DELETE FROM <YOUR TABLE> WHERE documentid = ls_document-documentid.
INSERT INTO <YOUR TABLE> VALUES ls_document.
fileupdset_get_entity(
EXPORTING
iv_entity_name = iv_entity_name
iv_entity_set_name = iv_entity_set_name
iv_source_name = iv_source_name
it_key_tab = it_key_tab
it_navigation_path = it_navigation_path
IMPORTING
er_entity = ls_document ).
copy_data_to_ref( EXPORTING is_data = ls_document
CHANGING cr_data = er_entity ).
ENDCASE.
ENDMETHOD.
On your table you should have a field, something like DocumentId that will serve as primary key.
You can then call the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')"
To retrieve the file you can simply make a GET request to the url "/sap/opu/odata/SAP/ZGWRE_WF_FILES_SRV/WfFileCollectionSet('DocumentIdHere')/$value"
Good examples here and here. Hope that helps!
answered Nov 19 '18 at 10:00
Andre FAndre F
2961214
2961214
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53343617%2fuploadcollection-sending-files-but-cant-be-opened%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown