Introduction
This method supports the ability for file inputs to accept and upload multiple files into database.
Steps To Follow
Step1:
Create a File Browse Item.
Step2:
In HTML Form Element Attributes set as “Multiple”. For Selecting the Multiple Files at a time.
Step3:
Create the Text field to get the Filename.
Step4:
In Dynamic Action “onchange” of File Item. Place the Javascript to get the Selected File Names.
Code:
var x = document.getElementById(“P37_FILE”);
vlength=x.files.length;
var txt = “”;
$x(“P37_FILENAME”).value=””;
if (‘files’ in x) {
for (var i = 0; i <vlength; i++) {
if (x.files.length == 0) {
txt = “Select one or more files.”;
$x(“P37_FILENAME”).value=””;
}
else{
txt += “<br><strong>” + (i+1) + “. file</strong><br>”;
console.log(“txt =”+txt );
var file = x.files[i];
if (‘name’ in file) {
txt += “name: ” + file.name + “<br>”;
$x(“P37_FILENAME”).value+=file.name;
}
if (‘size’ in file) {
txt += “size: ” + file.size + ” bytes <br>”;
}
if(i!=vlength-1)
{ $x(“P37_FILENAME”).value+=”:”;
}} }}
Step5:
Create the Page Process to get the file from APEX_APPLICATION_FILES and Store it in a Temporary Table.
Code:
DECLARE
l_selected apex_application_global.vc_arr2;
lv_filename VARCHAR2 (100);
BEGIN
l_selected := apex_util.string_to_table (:p37_filename, ‘:’);
FOR i IN 1 .. l_selected.COUNT
LOOP
lv_filename := l_selected (i);
BEGIN
INSERT INTO mul_file_attach
(file_id, filename, mime_type, file_content,file_size)
SELECT ID, lv_filename, mime_type, blob_content,DOC_SIZE
FROM apex_application_files
WHERE filename = lv_filename AND created_by = :app_user;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
raise_application_error (-20585, ‘Error in Insertion’ || SQLERRM);
END;
DELETE FROM apex_application_files
WHERE filename = lv_filename AND created_by = :app_user;
COMMIT;
END LOOP;
END;
Call To Action
For Oracle apex development and customization please do visit us..Our company website https://doyensys.com/
Conclusion
Using this method we can increase file inputs to accept and upload multiple files into database.