Friday, May 22, 2020

jQuery Filer.js Plugin



Hello guys! Welcome to a new section of my tutorials on jQuery. In this tutorial post, i will be discussing about the Filer.js plugin.

Filer.js is a jQuery plugin which can be used for quick and easy file upload into a webpage.

Example

Below is a simple Filer.js example -

<html   xmlns = "https://www.w3.org/1999/xhtml"> 
     <head> 
          <meta   http-equiv = "Content-Type"   content = "text/html;   charset = utf-8" /> 
          <link   href = "css/jquery.filer.css"   type = "text/css"   rel = "stylesheet" /> 
          <link   href = "css/themes/jquery.filer-dragdropbox-theme.css"   
               type = "text/css"   rel = "stylesheet" /> 

          <script   type = "text/javascript" 
               src =  "https://code.jquery.com/jquery-latest.min.js"> 
          </script> 

          <script   type = "text/javascript" 
               src =  "js/jquery.filer.min.js">
          </script> 

          <script   type =  "text/javascript"> 
               $document ).readyfunction( )  { 
                    $'#input1' ).filer( ); 

                    $'.file_input' ).filer( { 
                         showThumbs:  true , 
                         templates:   { 
                              box:   '<ul  class = "jFiler-item-list"></ul>' , 
                              item:  '<li  class = "jFiler-item"

                                   <div  class = "jFiler-item-container"
                                        <div  class = "jFiler-item-inner"

                                             <div  class = "jFiler-item-thumb"
                                                  <div  class = "jFiler-item-status"></div
                                                  <div  class = "jFiler-item-info"
                                                       <span class = "jFiler-item-title">
                                                            < b  title = "{ { fi-name } }">{ { fi-name | limitTo: 25 } }</b>
                                                       </span
                                                  </div
                                                  { { fi-image } } 
                                             </div>

                                             <div  class = "jFiler-item-assets  jFiler-row"
                                                  <ul  class = "list-inline  pull-left"
                                                       <li><span  class =  "jFiler-item-others"> 
                                                            { { fi-icon } }  { { fi-size2 } }</span></li
                                                  </ul>

                                                  <ul  class =  "list-inline  pull-right"
                                                       <li><a  class =  "icon-jfi-trash 
                                                            jFiler-item-trash-action"></a></li
                                                  </ul

                                             </div
                                        </div
                                   </div
                              </li>' , 

                              itemAppend:    '<li  class = "jFiler-item"

                                   <div  class =  "jFiler-item-container"
                                        <div  class =  "jFiler-item-inner"
                                             <div  class = "jFiler-item-thumb"
                                                  <div  class =  "jFiler-item-status"></div
                                                  <div  class =  "jFiler-item-info"
                                                       <span  class =  "jFiler-item-title">< 
                                                            b  title =  "{ { fi-name } }">{ { fi-name | 
                                                            limitTo: 25 } }</b></span
                                                  </div
                                                  { { fi-image } } 
                                             </div

                                             <div  class =  "jFiler-item-assets  jFiler-row"
                                                  <ul  class =  "list-inline pull-left"
                                                       <span  class =  "jFiler-item-others"> 
                                                            { { fi-icon } }  { { fi-size2 } }
                                                       </span
                                                  </ul

                                                  <ul  class =  "list-inline pull-right"
                                                       <li><a  class =  "icon-jfi-trash 
                                                            jFiler-item-trash-action"></a>
                                                       </li
                                                  </ul

                                             </div
                                        </div
                                   </div
                              </li>' , 

                              progressBar:   '<div class = "bar"></div>' , 
                              itemAppendToEnd:   true , 
                              removeConfirmation:    true , 

                              _selectors:   { 
                                   list:   '.jFiler-item-list' , 
                                   item:   '.jFiler-item' , 
                                   progressBar:   '.bar' , 
                                   remove:   '.jFiler-item-trash-action' , 
                              } 
                         }, 

                         addMore:   true, 

                         files:    [ { 
                              name:   "appended_file.jpg" , 
                              size:   5453 , 
                              type:   "image/jpg" , 
                              file:   "https://dummyimage.com/158x113/f9f9f9/191a1a.jpg" , 
                         } , { 
                              name:   "appended_file_2.png" , 
                              size:   9503 , 
                              type:   "image/png" , 
                              file:  "https://dummyimage.com/158x113/f9f9f9/191a1a.png" , 
                         } ] 
                    } ); 

                    $(' #input2 ').filer( { 
                         limit:   null , 
                         maxSize:   null , 
                         extensions:   null , 
                         changeInput:   ' 

                         <div  class =  "jFiler-input-dragDrop"> 
                              <div  class =  "jFiler-input-inner"> 

                                   <div  class =  "jFiler-input-icon"> 
                                        <i  class = "icon-jfi-cloud-up-o"></i> 
                                   </div> 

                                   <div  class =  "jFiler-input-text"> 
                                        <h3>Drag&Drop files here</h3> 
                                        <span  style =  "display:inline-block; 
                                             margin:  15px 0">or</span> 
                                   </div> 

                                   <a  class =  "jFiler-input-choose-btn blue">Browse Files</a> 

                              </div> 
                         </div>' , 

                         showThumbs:   true , 
                         appendTo:   null , 
                         theme:   "dragdropbox" , 

                         templates:   { 
                              box:   '<ul  class =  "jFiler-item-list"></ul>' , 
                              item:  '<li  class = "jFiler-item"
                                   <div  class =  "jFiler-item-container"
                                        <div   class =   "jFiler-item-inner"

                                             <div  class =  "jFiler-item-thumb"
                                                  <div  class =  "jFiler-item-status"></div

                                                  <div  class =  "jFiler-item-info"
                                                       <span  class =  "jFiler-item-title"> 
                                                            <b  title =  "{ { fi-name } }">{ { fi-name | 
                                                            limitTo:  25 } }</b></span
                                                  </div

                                                  { { fi-image } } 
                                             </div

                                             <div  class =  "jFiler-item-assets  jFiler-row"
                                                  <ul  class =  "list-inline pull-left"
                                                       <li>{ { fi-progressBar } }</li>
                                                  </ul

                                                  <ul  class = "list-inline pull-right"
                                                       <li><a  class =  "icon-jfi-trash 
                                                            jFiler-item-trash-action"></a> </li
                                                  </ul

                                             </div
                                        </div
                                   </div
                              </li>' , 

                              itemAppend:    '<li  class =  "jFiler-item"
                                   <div  class =  "jFiler-item-container"
                                        <div  class =  "jFiler-item-inner"

                                             <div  class =  "jFiler-item-thumb"
                                                  <div  class =  "jFiler-item-status"></div

                                                  <div  class =  "jFiler-item-info"
                                                       <span  class =  "jFiler-item-title"> 
                                                            <b  title =  "{ { fi-name } }">{ { fi-name | 
                                                            limitTo:  25 } }</b></span
                                                  </div

                                                  { { fi-image } } 
                                             </div

                                             <div  class =  "jFiler-item-assets  jFiler-row"
                                                  <ul  class =  "list-inline pull-left"
                                                       <span  class =  "jFiler-item-others"> 
                                                            { { fi-icon } }  { { fi-size2 } }</span
                                                  </ul

                                                  <ul  class =  "list-inline pull-right"
                                                       <li><a  class =  "icon-jfi-trash 
                                                            jFiler-item-trash-action"></a> 
                                                       </li
                                                  </ul

                                             </div
                                        </div
                                   </div
                              </li>' , 

                              progressBar:    '<div  class = "bar"></div>', 
                              itemAppendToEnd:   false , 
                              removeConfirmation:   false , 

                              _selectors:   { 
                                   list:   '.jFiler-item-list' , 
                                   item:   '.jFiler-item' , 
                                   progressBar:   '.bar' , 
                                   remove:   '.jFiler-item-trash-action' , 
                              } 
                         } , 

                         uploadFile:   { 
                              url:   "./php/upload.php" , 
                              data: { } , 
                              type:   'POST' , 
                              enctype:   'multipart/form-data' , 
                              beforeSend:   function( ) { } , 

                              success:   functiondata,  el )  { 
                                   var   parent = el.find".jFiler-jProgressBar" ).parent( ); 

                                   el.find".jFiler-jProgressBar" ).fadeOut"slow",   function( )  { 
                                        $"<div  class =  \"jFiler-item-others text-success\ " >
                                                  <i  class =  \"icon-jfi-check-circle\ "> 
                                                  </i> Success 
                                             </div>" ).hide( ).appendTo( parent ).fadeIn( "slow" ); 
                                   } ); 
                              } , 

                              error:   functionel )  { 
                                   var  parent =  el.find".jFiler-jProgressBar" ).parent( ); 

                                   el.find".jFiler-jProgressBar" ).fadeOut"slow",   function( )  { 
                                        $"<div  class = \" jFiler-item-others text-error\" >
                                                  <i   class =  \"icon-jfi-minus-circle\"
                                                  </i> Error 
                                             </div>").hide().appendTo( parent ).fadeIn( "slow" ); 
                                   } ); 
                              } , 

                              statusCode:    { } , 
                              onProgress:   function( ) { } , 
                         } , 

                         dragDrop:   { 
                              dragEnter:     function( ) { } , 
                              dragLeave:   function( ) { } , 
                              drop:   function( ) { } , 
                         } , 

                         addMore:   true , 
                         clipBoardPaste:   true , 
                         excludeName:   null , 
                         beforeShow:  function( )  {return true} , 
                         onSelect:   function( ) { } , 
                         afterShow:  function( ) { } , 
                         onRemove:  function( ) { } , 
                         onEmpty:   function( ) { } , 

                         captions:   { 
                              button:    "Choose Files" , 
                              feedback:  "Choose files To Upload" , 
                              feedback2:   "files were chosen" , 
                              drop:   "Drop file here to Upload" , 
                              removeConfirmation:   "Are you sure you want to remove this file?" , 

                              errors:   { 
                                   filesLimit:   "Only { { fi-limit } } files are allowed to be uploaded." , 
                                   filesType:   "Only Images are allowed to be uploaded." , 
                                   filesSize:   " { { fi-name } } is too large! 
                                        Please upload file up to { { fi-maxSize } } MB." , 
                                   filesSizeAll:   "Files you've choosed are too large! 
                                        Please upload files up to { { fi-maxSize } } MB." 
                              } 
                         } 
                    } ); 
               } ); 
          </script> 

          <style> 
               .file_input  { 
                    display:   inline-block ; 
                    padding:  10px   16px; 
                    outline:   none; 
                    cursor:   pointer; 
                    
                    text-decoration:   none; 
                    text-align:   center;   
                    white-space:   nowrap; 
                    
                    font-family:   sans-serif; 
                    font-size:   11px; 
                    font-weight:   bold; 
                    
                    border-radius:   3px; 
                    color:   #008BFF; 
                    border:   1px  solid   #008BFF; 
                    vertical-align:   middle; 
                    background-color:   #fff; 
                    margin-bottom:   10px; 
                    
                    box-shadow:   0px   1px   5px   rgba(0,0,0,0.05); 
                    -webkit-transition:   all   0.2s; 
                    -moz-transition:   all   0.2s; 
                    transition:   all   0.2s; 
              } 

               .file_input:  hover , 

             .file_input:active   { 
                    background:  #008BFF; 
                    color:   #fff; 
               } 
         </style> 

          <!--[if IE]> 
               <script  src = "https://html5shiv.googlecode.com/svn/trunk/html5.js" > 
               </script> 
          <![endif]--> 
     </head> 

     <body> 
          <div> 
               <form  action = "./php/upload.php"  method = "post" 
                    enctype =  "multipart/form-data"> 

                    <!-- filer 1 --> 
                         <input   type = "file"  multiple =  "multiple" 
                              name  = "files[ ]"  id = "input1"> 

                         <br> 
                         <input  type =  "submit"> 
               </form> 
          </div> 

          <br> 
          <hr> 
          <br> 

          <div> 
               <form  action = "./php/upload.php"  method = "post" 
                    enctype =  "multipart/form-data"> 

                    <!-- filer 2 --> 
                    <a  class = "file_input"   data-jfiler-name = "files" 
                         data-jfiler-extensions  = "jpg, jpeg, png, gif"> 
                         <i  class =  "icon-jfi-paperclip"></i> 
                              Attach a file</a> 

                    <br> 
                    <input  type  = "submit"> 
               </form> 
          </div> 

          <br> 
          <hr> 
          <br> 

          <div  style = "background:  #f7f8fa;  padding:  50px;"> 
               <!-- filer 3 --> 
               <input  type =  "file"  multiple = "multiple" 
                    name =  "files[ ]"  id =  "input2"> 
          </div> 

     </body> 
</html>


Alright guys! This is where we are wrapping it up with this tutorial. In my next tutorial post, i will be discussing about the Whatsnearby.js plugins. Feel free to ask your questions where necessary and i will attend to them as soon as possible.

If you found this tutorial helpful and interesting, kindly use the share button to share this tutorial. Follow us on our various social media platforms available to stay updated with our latest posts. Also subscribe to our newsletter to get all our tutorials delivered directly to your emails.

Thanks for reading and bye for now.
Share:

0 comments:

Post a Comment

Hello dear readers! Please kindly try your best to make sure your comments comply with our comment policy guidelines. You can visit our comment policy page to view these guidelines which are clearly stated. Thank you.