<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>

<title>Code Igniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../scripts/nav.js"></script>
<script type="text/javascript" src="../scripts/prototype.lite.js"></script>
<script type="text/javascript" src="../scripts/moo.fx.js"></script>
<script type="text/javascript">
window.onload = function() {
	myHeight = new fx.Height('nav', {duration: 400}); 
	myHeight.hide();
}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='Rick Ellis' />
<meta name='description' content='Code Igniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>Code Igniter User Guide Version 1.4.0</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Full Table of Contents</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
File Uploading Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>File Uploading Class</h1>

<p>Code Igniter's File Uploading Class permits files to be uploaded.  You can set various 
preferences, restricting the type and size of the files.</p>


<h2>The Process</h2>

<p>Uploading a file involves the following general process:</p>


<ul>
<li>An upload form is displayed, allowing a user to select a file and upload it.</li>
<li>When the form is submitted, the file is uploaded to the destination you specify.</li>
<li>Along the way, the file is validated to make sure it is allowed to be uploaded based on the preferences you set.</li>
<li>Once uploaded, the user will be shown a success message.</li>
</ul>

<p>To demonstrate this process here is brief tutorial. Afterward you'll find reference information.</p>

<h2>Creating the Upload Form</h2>



<p>Using a text editor, create a form called <dfn>upload_form.php</dfn>.  In it, place this code and save it to your <samp>applications/views/</samp>
folder:</p>


<textarea class="textarea" style="width:100%" cols="50" rows="23"><html>
<head>
<title>Upload Form</title>
</head>
<body>

<?=$error;?>

<?=form_open_multipart('upload/do_upload'); ?>

<input type="file" name="userfile" size="20" />

<br /><br />

<input type="submit" value="upload" />

</form>

</body>
</html></textarea>

<p>You'll notice we are using a form helper to create the opening form tag.  File uploads require a multipart form, so the helper 
creates the proper syntax for you.  You'll also notice we have an $error variable.  This is so we can show error messages in the event
the user does something wrong.</p>


<h2>The Success Page</h2>

<p>Using a text editor, create a form called <dfn>upload_success.php</dfn>.
In it, place this code and save it to your <samp>applications/views/</samp> folder:</p>

<textarea class="textarea" style="width:100%" cols="50" rows="20"><html>
<head>
<title>Upload Form</title>
</head>
<body>

<h3>Your file was successfully uploaded!</h3>

<ul>
<?php foreach($upload_data as $item => $value):?>
<li><?=$item;?>: <?=$value;?></li>
<?php endforeach; ?>
</ul>

<p><?=anchor('upload', 'Upload Another File!'); ?></p>

</body>
</html></textarea>


<h2>The Controller</h2>

<p>Using a text editor, create a controller called <dfn>upload.php</dfn>.  In it, place this code and save it to your <samp>applications/controllers/</samp>
folder:</p>


<textarea class="textarea" style="width:100%" cols="50" rows="43"><?php

class Upload extends Controller {
	
	function Upload()
	{
		parent::Controller();
		$this->load->helper(array('form', 'url'));
	}
	
	function index()
	{	
		$this->load->view('upload_form', array('error' => ' ' ));
	}

	function do_upload()
	{
		$this->load->library('upload');
	
		$config['upload_path'] = './uploads/'; 
		$config['allowed_types'] = 'gif|jpg|png';
		$config['max_size']	= '100';
		$config['max_width']  = '1024';
		$config['max_height']  = '768';
		
		$this->upload->initialize($config);
	
		if ( ! $this->upload->do_upload())
		{
			$error = array('error' => $this->upload->display_errors());
			
			$this->load->view('upload_form', $error);
		}	
		else
		{
			$data = array('upload_data' => $this->upload->data());
			
			$this->load->view('upload_success', $data);
		}
	}	
}
?></textarea>


<h2>The Upload Folder</h2>

<p>You'll need a destination folder for your uploaded images.  Create a folder at the root of your Code Igniter installation called
<dfn>uploads</dfn> and set its file permissions to 777.</p>


<h2>Try it!</h2>

<p>To try your form, visit your site using a URL similar to this one:</p>

<code>www.your-site.com/index.php/<var>upload</var>/</code>

<p>You should see an upload form. Try uploading an image file (either a jpg, gif, or png). If the path in your 
controller is correct it should work.</p>


<p>&nbsp;</p>

<h1>Reference Guide</h1>


<h2>Initializing the Upload Class</h2>

<p>Like most other classes in Code Igniter, the Upload class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p>

<code>$this->load->library('upload');</code>
<p>Once the Upload class is loaded, the object will be available using: <dfn>$this->upload</dfn></p>


<h2>Setting Preferences</h2>

<p>Similar to other libraries, you'll control what is allowed to be upload based on your preferences.  In the controller you 
built above you set the following preferences:</p>

<code>$config['upload_path'] = './uploads/';<br />
$config['allowed_types'] = 'gif|jpg|png';<br />
$config['max_size']	= '100';<br />
$config['max_width']  = '1024';<br />
$config['max_height']  = '768';<br />
<br />
$this->upload->initialize($config);</code>

<p>The above preferences should be fairly self-explanatory.  Below is a table describing all available preferences.</p>


<h2>Preferences</h2>

<p>The following preferences are available.  The default value indicates what will be used if you do not specify that preference.</p>

<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
<tr>
<th>Preference</th>
<th>Default&nbsp;Value</th>
<th>Options</th>
<th>Description</th>
</tr>

<tr>
<td class="td"><strong>upload_path</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">The path to the folder where the upload should be placed.  The folder must be writable and the path can be absolute or relative.</td>
</tr>

<tr>
<td class="td"><strong>allowed_types</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">The mime types corresponding to the types of files you allow to be uploaded.  Usually the file extension can be used as the mime type.  Separate multiple types with a pipe.</td>
</tr>


<tr>
<td class="td"><strong>overwrite</strong></td>
<td class="td">FALSE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">If set to true, if a file with the same name as the one you are uploading exists, it will be overwritten. If set to false, a number will be appended to the filename if another with the same name exists.</td>
</tr>


<tr>
<td class="td"><strong>max_size</strong></td>
<td class="td">0</td>
<td class="td">None</td>
<td class="td">The maximum size (in kilobytes) that the file can be.  Set to zero for no limit. Note:  Most PHP installations have their own limit, as specified in the php.ini file.  Usually 2 MB (or 2048 KB) by default.</td>
</tr>

<tr>
<td class="td"><strong>max_width</strong></td>
<td class="td">0</td>
<td class="td">None</td>
<td class="td">The maximum width (in pixels) that the file can be.  Set to zero for no limit.</td>
</tr>

<tr>
<td class="td"><strong>max_height</strong></td>
<td class="td">0</td>
<td class="td">None</td>
<td class="td">The maximum height (in pixels) that the file can be.  Set to zero for no limit.</td>
</tr>


<tr>
<td class="td"><strong>encrypt_name</strong></td>
<td class="td">FALSE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">If set to TRUE the file name will be converted to a random encrypted string. This can be useful if you would like the file saved with a name that can not be discerned by the person uploading it.</td>
</tr>

<tr>
<td class="td"><strong>remove_spaces</strong></td>
<td class="td">TRUE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">If set to TRUE, any spaces in the file name will be converted to underscores. This is recommended.</td>
</tr>
</table>


<h2>Setting preferences in a config file</h2>

<p>If you prefer not to set preferences using the above method, you can instead put them into a config file.
Simply create a new file called the <var>upload.php</var>,  add the <var>$config</var>
array in that file. Then save the file in: <var>config/upload.php</var> and it will be used automatically. You
will NOT need to use the <dfn>$this->upload->initialize</dfn> function if you save your preferences in a config file.</p>


<h2>Function Reference</h2>

<p>The following functions are available</p>


<h2>$this->upload->do_upload()</h2>

<p>Performs the upload based on the preferences you've set.  Note:  The upload routine expects the file to come from a form field 
called <dfn>userfile</dfn>, and the form must be a "multipart type:</p>

<code>&lt;form method="post" action="some_action" enctype="multipart/form-data" /></code>


<h2>$this->upload->display_errors()</h2>

<p>Retrieves any error messages if the <dfn>do_upload()</dfn> function returned false.  The function does not echo automatically, it
returns the data so you can assign it however you need.</p>

<h3>Formatting Errors</h3>
<p>By default the above function wraps any errors within &lt;p> tags.  You can set your own delimiters like this:</p>

<code>$this->upload->display_errors('<var>&lt;p></var>', '<var>&lt;/p></var>');</code>

<h2>$this->upload->data()</h2>

<p>This is a helper function that returns an array containing all of the data related to the file you uploaded. 
Here is the array prototype:</p>

<code>Array<br />
(<br />
&nbsp;&nbsp;&nbsp;&nbsp;[file_name]&nbsp;&nbsp;&nbsp;&nbsp;=> mypic.jpg<br />
&nbsp;&nbsp;&nbsp;&nbsp;[file_type]&nbsp;&nbsp;&nbsp;&nbsp;=> image/jpeg<br />
&nbsp;&nbsp;&nbsp;&nbsp;[file_path]&nbsp;&nbsp;&nbsp;&nbsp;=> /path/to/your/upload/<br />
&nbsp;&nbsp;&nbsp;&nbsp;[full_path]&nbsp;&nbsp;&nbsp;&nbsp;=> /path/to/your/upload/jpg.jpg<br />
&nbsp;&nbsp;&nbsp;&nbsp;[raw_name]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> mypic<br />
&nbsp;&nbsp;&nbsp;&nbsp;[orig_name]&nbsp;&nbsp;&nbsp;&nbsp;=> mypic.jpg<br />
&nbsp;&nbsp;&nbsp;&nbsp;[file_ext]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> .jpg<br />
&nbsp;&nbsp;&nbsp;&nbsp;[file_size]&nbsp;&nbsp;&nbsp;&nbsp;=> 22.2<br />
&nbsp;&nbsp;&nbsp;&nbsp;[is_image]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;[image_width]&nbsp;&nbsp;=> 800<br />
&nbsp;&nbsp;&nbsp;&nbsp;[image_height] => 600<br />
&nbsp;&nbsp;&nbsp;&nbsp;[image_type]&nbsp;&nbsp;&nbsp;=> jpeg<br />
&nbsp;&nbsp;&nbsp;&nbsp;[image_size_str] => width="800" height="200"<br />
)</code>

<h3>Explanation</h3>

<p>Here is an explanation of the above array items.</p>

<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
<tr><th>Item</th><th>Description</th></tr>

<tr><td class="td"><strong>file_name</strong></td>
<td class="td">The name of the file that was uploaded including the file extension.</td></tr>

<tr><td class="td"><strong>file_type</strong></td>
<td class="td">The file's Mime type</td></tr>

<tr><td class="td"><strong>file_path</strong></td>
<td class="td">The absolute server path to the file</td></tr>

<tr><td class="td"><strong>full_path</strong></td>
<td class="td">The absolute server path including the file name</td></tr>

<tr><td class="td"><strong>raw_name</strong></td>
<td class="td">The file name without the extension</td></tr>

<tr><td class="td"><strong>orig_name</strong></td>
<td class="td">The original file name.  This is only useful if you use the encrypted name option.</td></tr>

<tr><td class="td"><strong>file_ext</strong></td>
<td class="td">The file extension with period</td></tr>

<tr><td class="td"><strong>file_size</strong></td>
<td class="td">The file size in kilobytes</td></tr>

<tr><td class="td"><strong>is_image</strong></td>
<td class="td">Whether the file is an image or not.  1 = image. 0 = not.</td></tr>

<tr><td class="td"><strong>image_width</strong></td>
<td class="td">Image width.</td></tr>

<tr><td class="td"><strong>image_heigth</strong></td>
<td class="td">Image height</td></tr>

<tr><td class="td"><strong>image_type</strong></td>
<td class="td">Image type.  Typically the file extension without the period.</td></tr>

<tr><td class="td"><strong>image_size_str</strong></td>
<td class="td">A string containing the width and height.  Useful to put into an image tag.</td></tr>


</table>

</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="encryption.html">Encryption Class</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="image_lib.html">Image Manipulation Class</a>
<p>
<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
</div>

</body>
</html>