Chunked File Uploader With jQury And PHP - fcup
File Size: | 11.9 KB |
---|---|
Views Total: | 5713 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
fcup is a simple, fully configurable Chunked File Uploader for larger files that supports both browser and node.js.
Features:
- Based on jQuery and PHP.
- Asynchronous upload.
- Uploads Chunked Files with an inline upload button.
- Inline Progress bar.
- Allows to specify the file types.
- Callback function.
Basic usage:
1. Create a container for the Chunked File Uploader.
<div class="fcup"></div>
2. Include jQuery JavaScript library and the fcup's JavaScript on the web page.
<script src="/path/to/jquery.min.js"></script> <script src="/path/to/jquery.fcup.min.js"></script>
3. Initialize the fcup and done.
$.fcup({ updom: '.fcup', upurl: 'file.php', // more options here });
4. Stylize the upload button in the CSS.
/* upload button */ .fcup-button { display: inline-block; font-size: 18px; color: #fff !important; text-decoration: none !important; padding: 10px 40px; line-height: 1; overflow: hidden; position: relative; box-shadow: 0 1px 1px #ccc; border-radius: 2px; background-color: #009688; background-image: -webkit-linear-gradient(top, #009688, #009688); background-image: -moz-linear-gradient(top, #009688, #009688); background-image: linear-gradient(top, #009688, #009688); } /* progress bar */ .fcup-button .tz-bar { background-color: #51b7e6; height: 3px; bottom: 0; left: 0; width: 0; position: absolute; z-index: 1; border-radius: 0 0 2px 2px; -webkit-transition: width 0.5s, height 0.5s; -moz-transition: width 0.5s, height 0.5s; transition: width 0.5s, height 0.5s; } .fcup-button.in-fcup, .fcup-button.finished { color: transparent !important; } .fcup-button.in-fcup:after, .fcup-button.finished:after { position: absolute; z-index: 2; width: 100%; height: 100%; text-align: center; top: 0; padding-top: inherit; color: #fff !important; left: 0; } .fcup-button.in-fcup:after { content: attr(data-loading); } .fcup-button.finished:after { content: attr(data-finished); } .fcup-button .tz-bar.background-horizontal { height: 100%; border-radius: 2px; } .fcup-button .tz-bar.background-vertical { height: 0; top: 0; width: 100%; border-radius: 2px; }
5. The example PHP to handle file uploading.
<?php /* header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:PUT,POST,GET,DELETE,OPTIONS'); header('Access-Control-Allow-Headers:x-requested-with,content-type'); */ header("Content-type: text/html; charset=utf-8"); $file = isset($_FILES['file_data']) ? $_FILES['file_data']:null; $name = isset($_POST['file_name']) ? '../upload/'.$_POST['file_name']:null; $total = isset($_POST['file_total']) ? $_POST['file_total']:0; $index = isset($_POST['file_index']) ? $_POST['file_index']:0; if(!$file || !$name){ echo 'failed'; die(); } if ($file['error'] == 0) { if (!file_exists($name)) { if (!move_uploaded_file($file['tmp_name'], $name)) { echo 'success'; } } else { $content = file_get_contents($file['tmp_name']); if (!file_put_contents($name, $content, FILE_APPEND)) { echo 'failed'; } echo 'success'; } } else { echo 'failed'; }
6. Possible options to customize the uploader.
$.fcup({ // selector for uploader updom: '.fcup', // 0.05mb shardsize : '0.05', // text for upload button upstr: 'Upload', // uploading text uploading: 'Uploading...', // text when finished upfinished: 'Finished', // PHP to handle file uploading upurl: './file.php', // allowed file types uptype: 'jpg,png,gif,jpeg,zip,rar', // text for invalid file type errtype: 'Invalid File Type' });
Change log:
2018-05-02
- added filesize valdation
- added MD5 support
- added more functions
- optimize codes.
2018-01-18
- Improvement and Fixing
This awesome jQuery plugin is developed by lovefc. For more Advanced Usages, please check the demo page or visit the official website.