title: Springfox creates 'ref' type instead of java.io.File object in Swagger 2.0 JSON Definition
body: <p>I am attempting to describe a REST POST endpoint that takes two <code>java.io.File</code> objects as part of a <code>multipart/form-data</code> payload using Java annotations from Swagger. Upon intitial research, I found that this could be accomplished by specifying implicit parameters with the following properties set (namely <code>type</code>, <code>dataType</code>, and <code>paramType</code>)</p>
  
  <pre><code>    @ApiImplicitParams({
          @ApiImplicitParam(
                  name="controlFile",
                  value="Control file to be used in the comparison.",
                  required=true,
                  type="file",
                  paramType="form",
                  dataType="java.io.File"),
          @ApiImplicitParam(
                  name="testFile",
                  value="Test file to be used in the comparison.",
                  required=true,
                  type="file",
                  paramType="form",
                  dataType="java.io.File")
      })
      @PostMapping(
              consumes=MediaType.MULTIPART_FORM_DATA,
              produces=MediaType.APPLICATION_JSON
      )
      public ResponseEntity&lt;Void&gt; submitComparisonRequest(
              final UriComponentsBuilder uriBuilder,
              @Context final HttpServletRequest request) {
  
          try {
              final FileItemFactory factory = new DiskFileItemFactory();
              final ServletFileUpload upload = new ServletFileUpload(factory);
              final FileItemIterator items = upload.getItemIterator(request);
  
              final FileItemStream control = items.next();
              final FileItemStream test = items.next();
  </code></pre>
  
  <p>In the part of the JSON contract that describes these parameters, everything looks correct <strong>EXCEPT</strong> the <code>type</code> field value is <code>ref</code> instead of the excepected <code>java.io.File</code>.</p>
  
  <pre><code>"parameters": [
      {
          "name": "controlFile",
          "in": "formData",
          "description": "Control file to be used in the comparison.",
          "required": true,
          "type": "ref"
      },
      {
          "name": "testFile",
          "in": "formData",
          "description": "Test file to be used in the comparison.",
          "required": true,
          "type": "ref"
      }
  ],
  </code></pre>
  
  <p>I have tried several different combinations of using <code>dataType</code> vs <code>dataTypeClass</code> and other strategies from in <a href="https://stackoverflow.com/q/51098932/2096689">this</a> SO question, but I have not been able to get the JSON contract generated correctly. </p>
  
  <p>For reference, I am using Springfox 2.9.2 and SpringMVC 5.2.2.</p>