- Back to Docs
- Install and Configure
- Image
- Server Upload
- Server Delete
- S3 Upload
- Resize
- Validation
- Image Manager
- Simple Server
- File
- Server Upload
- Server Delete
- S3 Upload
- Validation
- References
- Image
- File
- S3
Java File Validation
How it works
- The file gets uploaded to your server.
- Before storing the file on disk, it is being validated on server side.
File Upload
In the Server Upload article we explain the steps to upload an file on your server. When you insert an file in the rich text editor, you can validate its format. However that check is done only on the filename and not on the mime type. We recommend to make additional checks on server side just to make sure that users don't upload files in bad formats.
Validate Extension
The WYSIWYG editor's Java SDK comes with the possibility to check the file extension when it is being stored on the disk. Additional to the file name extension, it is using the mime type of the file for better accuracy.
ImageOptions options = new ImageOptions(); options.setFieldname("myFile"); options.setValidation(new ImageValidation(new String[] { "txt", "pdf", "doc" }, new String[] { "text/plain", "application/msword", "application/x-pdf", "application/pdf" })); Map<Object, Object> responseData = Image.upload(request, fileRoute, options);
Custom Validation
You can also pass a custom method instead of validating the extension and mime type. This gives you full control on what types of files you want to store on disk. Below is an example of how to validate if a file is smaller than 10Mb.
FileOptions options = new FileOptions(); options.setFieldname("myFile"); options.setValidation(new FileValidation(new CustomValidation() { @Override public boolean validate(String filePath, String mimeType) { java.io.File f = new java.io.File(filePath); long size = f.length(); if (size > 10 * 1024 * 1024) { return false; } return true; } })); Map<Object, Object> responseData = File.upload(request, fileRoute, options);
Complete Example
<script> $(function() { $('.selector').froalaEditor({ // Set the file upload URL. fileUploadURL: '/upload_file_validation', fileUploadParams: { id: 'my_editor' } }) }); </script>
package com.froala.examples.servlets; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.froala.editor.CustomValidation; import com.froala.editor.File; import com.froala.editor.file.FileOptions; import com.froala.editor.file.FileValidation; import com.google.gson.Gson; /** * Servlet implementation class UploadFileValidation */ @WebServlet("/upload_file_validation") @MultipartConfig public class UploadFileValidation extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public UploadFileValidation() { super(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileRoute = "/public/"; FileOptions options = new FileOptions(); options.setFieldname("myFile"); options.setValidation(new FileValidation(new CustomValidation() { @Override public boolean validate(String filePath, String mimeType) { java.io.File f = new java.io.File(filePath); long size = f.length(); if (size > 10 * 1024 * 1024) { return false; } return true; } })); Map<Object, Object> responseData; try { responseData = File.upload(request, fileRoute, options); } catch (Exception e) { e.printStackTrace(); responseData = new HashMap<Object, Object>(); responseData.put("error", e.toString()); } String jsonResponseData = new Gson().toJson(responseData); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(jsonResponseData); } }