Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple upload from desktop

Former Member
0 Kudos

hi all

i have to upload multiple files together and have to send to application server. I am able to do with single file but not getting any idea how to upload multiple files together.

if someone has faced the same problem before can please help me. or if some one have idea plz help me its urgent for me. and can please send me the logic

it will be great help.

plz help !!!!

thanks

8 REPLIES 8

Former Member
0 Kudos

hi,

i thing already some posting are there.

read all the file names and keep it to one itab

loop at itab.

use upload function ( how you are doing for single file )

and using open dataset you can write into application server.

endloop

cheers,

sasi

0 Kudos

hi

please can you tell me...what parameter should i maintain. And i dont know the filenames too.

so can u define some method for that

Plz if possible help

0 Kudos

Hi,

try with this

data: l_filename type string OCCURS 0 WITH HEADER LINE.

l_filename = 'c:\temp1.xls'.

APPEND L_FILENAME

l_filename = 'c:\temp2.xls'.

APPEND L_FILENAME

LOOP AT L_FILENAME

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = l_filename

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '#'

TABLES

DATA_TAB = itab1.

OPEN DATASET <applicationfilename> FOR OUTPUT IN TEXT MODE.

IF sy-subrc = 0.

LOOP AT ITAB1

TRANSFER ITAB1 TO pt_infil .

ENDLOOP.

ENDIF.

CLOSE DATASET pt_infil.

ENDLOOP.

0 Kudos

Hi,

try:

1) CL_GUI_FRONTEND_SERVICES->DIRECTORY_LIST_FILES
2) loop at file_table.
     fm C13Z_FILE_UPLOAD_ASCII
   endloop.

Andreas

0 Kudos

hi

i am still confused....if i append the l_filename. but what should be the select option for user to select the files.

as i dont know what are the file names. they could be any. so please a little bit help more reuqiered..

plz help

thanks

0 Kudos

hi,

try with this

tables tline.

data: l_filename type string OCCURS 0 WITH HEADER LINE.

select-options l_file for tline-tdline no intervals.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR l_file-low.

*To get file name from user's workstation

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

def_filename = l_file-low

def_path = 'c:/'

mask = ',.,..'

mode = 'S'

IMPORTING

filename = l_file-low

EXCEPTIONS

inv_winsys = 1

no_batch = 2

selection_cancel = 3

selection_error = 4

OTHERS = 5.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

0 Kudos

Hi all,

An exampl to do that:

PARAMETERS: p_path(1024) DEFAULT 'c:\tmp\',

p_appl LIKE RCGFILETR-FTAPPL DEFAULT '/home/ABALLAY/Pablo'.

DATA: v_count type i,

v_path TYPE STRING,

v_filename LIKE RCGFILETR-FTFRONT,

wa_tab LIKE FILE_INFO.

DATA: TAB TYPE STANDARD TABLE OF FILE_INFO.

DATA: BEGIN OF t_data OCCURS 0,

LINE(1000),

END OF t_data.

v_path = p_path.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES

EXPORTING

DIRECTORY = v_path

  • FILTER = '.'

  • FILES_ONLY =

  • DIRECTORIES_ONLY =

CHANGING

FILE_TABLE = TAB

COUNT = v_count.

  • EXCEPTIONS

  • CNTL_ERROR = 1

  • DIRECTORY_LIST_FILES_FAILED = 2

  • WRONG_PARAMETER = 3

  • ERROR_NO_GUI = 4

  • NOT_SUPPORTED_BY_GUI = 5

  • others = 6

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

break-point.

OPEN DATASET p_appl FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT TAB INTO WA_TAB..

CONCATENATE p_path wa_tab-filename INTO v_filename.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = v_filename

FILETYPE = 'ASC'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = t_data

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

NO_AUTHORITY = 10

OTHERS = 11

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

LOOP AT t_data.

TRANSFER t_data TO p_appl.

ENDLOOP.

ENDLOOP.

Regards

PabloX.

Former Member
0 Kudos

Hi Anu,

in the following, you might have to change path-separators according to your back/frontend OS but otherwise it's fully functional for your request.

Regards Jörg

REPORT ztest99 .

PARAMETERS: path(128) LOWER CASE OBLIGATORY.

DATA: filtab TYPE filetable,

filline TYPE LINE OF filetable,

a_file TYPE string.

DATA: intab TYPE TABLE OF string,

a_line TYPE string.

DATA: target TYPE string.

DATA: rc TYPE i.

DATA: ix TYPE i.

DATA: dummy TYPE TABLE OF string WITH HEADER LINE.

CALL METHOD cl_gui_frontend_services=>file_open_dialog

EXPORTING

window_title = 'Select files for upload'

  • DEFAULT_EXTENSION =

  • DEFAULT_FILENAME =

  • FILE_FILTER =

  • INITIAL_DIRECTORY =

multiselection = 'X'

CHANGING

file_table = filtab

rc = rc

EXCEPTIONS

file_open_dialog_failed = 1

cntl_error = 2

error_no_gui = 3

not_supported_by_gui = 4

OTHERS = 5.

IF sy-subrc <> 0.

  • Do some Error Handling

ENDIF.

LOOP AT filtab INTO a_file.

CALL METHOD cl_gui_frontend_services=>gui_upload

EXPORTING

filename = a_file

filetype = 'ASC'

CHANGING

data_tab = intab

EXCEPTIONS

file_open_error = 1

file_read_error = 2.

IF sy-subrc <> 0.

  • DO SOME ERROR HANDLING

ENDIF.

SPLIT a_file AT '' INTO TABLE dummy.

ix = LINES( dummy ).

READ TABLE dummy INDEX ix.

CONCATENATE path dummy INTO target SEPARATED BY '/'.

OPEN DATASET target FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

CHECK sy-subrc EQ 0.

LOOP AT intab INTO a_line.

TRANSFER a_line TO target.

ENDLOOP.

CLOSE DATASET target.

ENDLOOP.