Discussions
Categories
- 196.7K All Categories
- 2.2K Data
- 235 Big Data Appliance
- 1.9K Data Science
- 449.8K Databases
- 221.5K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 549 MySQL Community Space
- 477 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 532 SQLcl
- 4K SQL Developer Data Modeler
- 186.8K SQL & PL/SQL
- 21.2K SQL Developer
- 295.4K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.1K Development Tools
- 104 DevOps
- 3.1K QA/Testing
- 645.9K Java
- 27 Java Learning Subscription
- 37K Database Connectivity
- 153 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 17 Java Essentials
- 158 Java 8 Questions
- 85.9K Java Programming
- 79 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.2K Java SE
- 13.8K Java Security
- 203 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 392 LiveLabs
- 37 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.6K Other Languages
- 2.3K Chinese
- 170 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 230 Portuguese
Issue with File ContentType with <af:inputFile> tag

Using below tag - af:inputFile
<af:inputFile label="#{inventoryUIBundle.FILE}:" id="if1"
value="#{pageFlowScope.InventoryImportEditBean.inputFile}"/>the uploaded MIME ContetType for CSV File is shown as "application/vnd.ms-excel " when checked with Firefox.
For the Same file, MIMEContent Type is shown as "text\csv" when checked with Chrome \ IE
How to get same File ContentType irrespective of Browser?
Comments
-
Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 38,270 Red Diamond
User, tell us your exact JDev version, please!
You can't set the mime type when you upload a file. All you can do is to get the mime type and act on this.
Code to get the mime type:
String mime = uploadedFile.getContentType();
or you use the file extension to determine the type.
Timo
-
Specify ContentType in the af:fileDownloadActionListener.
<af:commandLink text="Download" id="cl1" partialSubmit="true"> <af:fileDownloadActionListener filename="#{row.DocumentName}" contentType="#{row.DocumentType}" method="#{pageFlowScope.MultipleDocumentUpload.handleDownload}"/> </af:commandLink>
-
Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 38,270 Red Diamond
-
The af:commandButton could be added within af:inputFile.
<af:inputFile label="#{inventoryUIBundle.FILE}:" id="if1" value="#{pageFlowScope.InventoryImportEditBean.inputFile}"> <af:commandButton text="Download" id="cl1" partialSubmit="true"> <af:fileDownloadActionListener filename="#{row.DocumentName}" contentType="#{row.DocumentType}" method="#{pageFlowScope.MultipleDocumentUpload.handleDownload}"/> </af:commandButton> </af:inputFile>
-
Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 38,270 Red Diamond
@dvohra21 have you tried this code? I don't think so. af:inputfile opens a dialog to upload a file. then your button adds an af:fileDownloadListener that is used to send a file to the client. What should this do?
-
Thanks Timo. Upload and download together won't run.
How to get same File ContentType irrespective of Browser?
Use the https://www.appservgrid.com/documentation111/api/adffaces/docs/apidocs/oracle/adf/view/faces/model/UploadedFile.html#getContentType() method. Add a valueChangeListener to inputFile. In the backing bean get the content type.
/**Method to Upload File ,called on ValueChangeEvent of inputFile * @param vce */ public void uploadFileVCE(ValueChangeEvent vce) { if (vce.getNewValue() != null) { //Get File Object from VC Event UploadedFile fileVal = (UploadedFile) vce.getNewValue(); System.out.println(fileVal.getContentType()); } }
The download functionality could be added separately to a link in table column, and with an af:fileDownloadActionListener inside the link.