How to create a list of file fields with checkboxes selector? We all know that by default drupal allows the users to create Lists consists of (float, integer, decimal and text) field types that can be useful for webforms element, 
but this kind of list can't be very useful and haven't enough efficiency in content type (of course this is my personal opinion only) However,
I think this kind of list can be more flexible and powerful if combine with other types of field like Link and especially in the case of Files.
Because these kind of fields (Link &amp; File) consists of two components Title (can be equal to field label For more convenience) that can be Stable and Value that can be Unstable.
for example I have a predefined, stable and limited list of title, List(text) and against of it there is a list of unstable and changeable of file fields in my custom content type, for this reason I decide to combine the power of lists (like default drupal list(text)) with file upload fields and create new and more powerful field type like List(file) something like below:



Advantages of this field:


Not have to change the Description (Title or label of the link) of file field eachtime that you want to upload or update a new file
Not have to change ugly file names like '102-32.exe' to something
can be more human readable.(If you want to use generic display format)
Get rid of any change or add more complexity to template files.
Add 4 file fields to your content type with desired labels (ex. "Win 64bit"),
Then you will have this 4 fields in your add content form.

Now it's time to make them optional, first of all using hook_form_alter you can add 4 new elements of class "checkbox" to your form like this:

$form['dependent']['win64'] = array(
  '#type' =&gt; 'checkbox',
  '#title' =&gt; t('Win 64bit'),
);


and then for your fields add a #states like below : 

$form["win 64 file field"]= array(
  '#states' =&gt; array(
    'visible' =&gt; array(
      ':input[name="dependent[win64]"]' =&gt; array('checked' =&gt; TRUE),   
  ),
);