code: func (ctx *RequestCtx) FormFile(key string) (*multipart.FileHeader, error) {
  	mf, err := ctx.MultipartForm()
  	if err != nil {
  		return nil, err
  	}
  	if mf.File == nil {
  		return nil, err
  	}
  	fhh := mf.File[key]
  	if fhh == nil {
  		return nil, ErrMissingFile
  	}
  	return fhh[0], nil
  }
docs: // FormFile returns uploaded file associated with the given multipart form key.
  //
  // The file is automatically deleted after returning from RequestHandler,
  // so either move or copy uploaded file into new place if you want retaining it.
  //
  // Use SaveMultipartFile function for permanently saving uploaded file.
  //
  // The returned file header is valid until returning from RequestHandler.