forked from roytuts/codeigniter
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
3,112 additions
and
0 deletions.
There are no files selected for viewing
135 changes: 135 additions & 0 deletions
135
codeIgniter-3.1.10-rest-file-upload/application/config/autoload.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
<?php | ||
defined('BASEPATH') OR exit('No direct script access allowed'); | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| AUTO-LOADER | ||
| ------------------------------------------------------------------- | ||
| This file specifies which systems should be loaded by default. | ||
| | ||
| In order to keep the framework as light-weight as possible only the | ||
| absolute minimal resources are loaded by default. For example, | ||
| the database is not connected to automatically since no assumption | ||
| is made regarding whether you intend to use it. This file lets | ||
| you globally define which systems you would like loaded with every | ||
| request. | ||
| | ||
| ------------------------------------------------------------------- | ||
| Instructions | ||
| ------------------------------------------------------------------- | ||
| | ||
| These are the things you can load automatically: | ||
| | ||
| 1. Packages | ||
| 2. Libraries | ||
| 3. Drivers | ||
| 4. Helper files | ||
| 5. Custom config files | ||
| 6. Language files | ||
| 7. Models | ||
| | ||
*/ | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| Auto-load Packages | ||
| ------------------------------------------------------------------- | ||
| Prototype: | ||
| | ||
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared'); | ||
| | ||
*/ | ||
$autoload['packages'] = array(); | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| Auto-load Libraries | ||
| ------------------------------------------------------------------- | ||
| These are the classes located in system/libraries/ or your | ||
| application/libraries/ directory, with the addition of the | ||
| 'database' library, which is somewhat of a special case. | ||
| | ||
| Prototype: | ||
| | ||
| $autoload['libraries'] = array('database', 'email', 'session'); | ||
| | ||
| You can also supply an alternative library name to be assigned | ||
| in the controller: | ||
| | ||
| $autoload['libraries'] = array('user_agent' => 'ua'); | ||
*/ | ||
$autoload['libraries'] = array(); | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| Auto-load Drivers | ||
| ------------------------------------------------------------------- | ||
| These classes are located in system/libraries/ or in your | ||
| application/libraries/ directory, but are also placed inside their | ||
| own subdirectory and they extend the CI_Driver_Library class. They | ||
| offer multiple interchangeable driver options. | ||
| | ||
| Prototype: | ||
| | ||
| $autoload['drivers'] = array('cache'); | ||
| | ||
| You can also supply an alternative property name to be assigned in | ||
| the controller: | ||
| | ||
| $autoload['drivers'] = array('cache' => 'cch'); | ||
| | ||
*/ | ||
$autoload['drivers'] = array(); | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| Auto-load Helper Files | ||
| ------------------------------------------------------------------- | ||
| Prototype: | ||
| | ||
| $autoload['helper'] = array('url', 'file'); | ||
*/ | ||
$autoload['helper'] = array('url', 'file', 'form'); | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| Auto-load Config files | ||
| ------------------------------------------------------------------- | ||
| Prototype: | ||
| | ||
| $autoload['config'] = array('config1', 'config2'); | ||
| | ||
| NOTE: This item is intended for use ONLY if you have created custom | ||
| config files. Otherwise, leave it blank. | ||
| | ||
*/ | ||
$autoload['config'] = array(); | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| Auto-load Language files | ||
| ------------------------------------------------------------------- | ||
| Prototype: | ||
| | ||
| $autoload['language'] = array('lang1', 'lang2'); | ||
| | ||
| NOTE: Do not include the "_lang" part of your file. For example | ||
| "codeigniter_lang.php" would be referenced as array('codeigniter'); | ||
| | ||
*/ | ||
$autoload['language'] = array(); | ||
|
||
/* | ||
| ------------------------------------------------------------------- | ||
| Auto-load Models | ||
| ------------------------------------------------------------------- | ||
| Prototype: | ||
| | ||
| $autoload['model'] = array('first_model', 'second_model'); | ||
| | ||
| You can also supply an alternative model name to be assigned | ||
| in the controller: | ||
| | ||
| $autoload['model'] = array('first_model' => 'first'); | ||
*/ | ||
$autoload['model'] = array(); |
73 changes: 73 additions & 0 deletions
73
codeIgniter-3.1.10-rest-file-upload/application/controllers/FileUploadRestController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
<?php | ||
use Restserver\Libraries\REST_Controller; | ||
|
||
defined('BASEPATH') OR exit('No direct script access allowed'); | ||
|
||
header('Access-Control-Allow-Origin: *'); | ||
|
||
if($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { | ||
//header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); | ||
header('Access-Control-Allow-Methods: POST'); | ||
header('Access-Control-Allow-Headers: Content-Type'); | ||
exit; | ||
} | ||
|
||
require APPPATH . 'libraries/REST_Controller.php'; | ||
require APPPATH . 'libraries/Format.php'; | ||
|
||
/* | ||
* @author https://www.roytuts.com | ||
*/ | ||
|
||
class FileUploadRestController extends CI_Controller { | ||
|
||
use REST_Controller { | ||
REST_Controller::__construct as private __resTraitConstruct; | ||
} | ||
|
||
function __construct() { | ||
parent::__construct(); | ||
$this->__resTraitConstruct(); | ||
} | ||
|
||
function upload_post() { | ||
if ($this->input->method()) { | ||
if(!$_FILES) { | ||
$this->response('Please choose a file', 500); | ||
return; | ||
} | ||
|
||
$upload_path = './uploads/'; | ||
//file upload destination | ||
$config['upload_path'] = $upload_path; | ||
//allowed file types. * means all types | ||
$config['allowed_types'] = '*'; | ||
//allowed max file size. 0 means unlimited file size | ||
$config['max_size'] = '0'; | ||
//max file name size | ||
$config['max_filename'] = '255'; | ||
//whether file name should be encrypted or not | ||
$config['encrypt_name'] = TRUE; | ||
|
||
$this->load->library('upload', $config); | ||
|
||
if (file_exists($upload_path . $_FILES['file']['name'])) { | ||
$this->response('File already exists => ' . $upload_path . $_FILES['file']['name']); | ||
return; | ||
} else { | ||
if (!file_exists($upload_path)) { | ||
mkdir($upload_path, 0777, true); | ||
} | ||
|
||
if($this->upload->do_upload('file')) { | ||
$this->response('File successfully uploaded => "' . $upload_path . $_FILES['file']['name']); | ||
return; | ||
} else { | ||
$this->response('Error during file upload => "' . $this->upload->display_errors(), 500); | ||
return; | ||
} | ||
} | ||
} | ||
} | ||
|
||
} |
18 changes: 18 additions & 0 deletions
18
codeIgniter-3.1.10-rest-file-upload/application/language/english/rest_controller_lang.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<?php | ||
|
||
/* | ||
* English language | ||
*/ | ||
|
||
$lang['text_rest_invalid_api_key'] = 'Invalid API key %s'; // %s is the REST API key | ||
$lang['text_rest_invalid_credentials'] = 'Invalid credentials'; | ||
$lang['text_rest_ip_denied'] = 'IP denied'; | ||
$lang['text_rest_ip_unauthorized'] = 'IP unauthorized'; | ||
$lang['text_rest_unauthorized'] = 'Unauthorized'; | ||
$lang['text_rest_ajax_only'] = 'Only AJAX requests are allowed'; | ||
$lang['text_rest_api_key_unauthorized'] = 'This API key does not have access to the requested controller'; | ||
$lang['text_rest_api_key_permissions'] = 'This API key does not have enough permissions'; | ||
$lang['text_rest_api_key_time_limit'] = 'This API key has reached the time limit for this method'; | ||
$lang['text_rest_ip_address_time_limit'] = 'This IP Address has reached the time limit for this method'; | ||
$lang['text_rest_unknown_method'] = 'Unknown method'; | ||
$lang['text_rest_unsupported'] = 'Unsupported protocol'; |
Oops, something went wrong.