Вход Регистрация
Файл: CodeIgniter-3.0.3/user_guide/libraries/file_uploading.html
Строк: 3326
<?php
<!DOCTYPE html>
<!--[if 
IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if 
gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<
head>
  <
meta charset="utf-8">
  <
meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <
title>File Uploading Class &mdashCodeIgniter 3.0.3 documentation</title>
  

  
  
    <
link rel="shortcut icon" href="../_static/ci-icon.ico"/>
  

  
  <
link href='https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic|Roboto+Slab:400,700|Inconsolata:400,700&subset=latin,cyrillic' rel='stylesheet' type='text/css'>

  
  
    

  

  
  
    <
link rel="stylesheet" href="../_static/css/citheme.css" type="text/css" />
  

  
    <
link rel="top" title="CodeIgniter 3.0.3 documentation" href="../index.html"/>
        <
link rel="up" title="Libraries" href="index.html"/>
        <
link rel="next" title="Form Validation" href="form_validation.html"/>
        <
link rel="prev" title="Encryption Library" href="encryption.html"/> 

  
  <
script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>

</
head>

<
body class="wy-body-for-nav" role="document">

  <
div id="nav">
  <
div id="nav_inner">
    
    
    
      <
div id="pulldown-menu" class="ciNav">
        <
ul>
<
li class="toctree-l1"><class="reference internal" href="../general/welcome.html">Welcome to CodeIgniter</a><ul class="simple">
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../installation/index.html">Installation Instructions</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../installation/downloads.html">Downloading CodeIgniter</a></li>
<
li class="toctree-l2"><class="reference internal" href="../installation/index.html">Installation Instructions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../installation/upgrading.html">Upgrading From a Previous Version</a></li>
<
li class="toctree-l2"><class="reference internal" href="../installation/troubleshooting.html">Troubleshooting</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../overview/index.html">CodeIgniter Overview</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../overview/getting_started.html">Getting Started</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/at_a_glance.html">CodeIgniter at a Glance</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/features.html">Supported Features</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/appflow.html">Application Flow Chart</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/mvc.html">Model-View-Controller</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/goals.html">Architectural Goals</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../tutorial/index.html">Tutorial</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/static_pages.html">Static pages</a></li>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/news_section.html">News section</a></li>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/create_news_items.html">Create news items</a></li>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/conclusion.html">Conclusion</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../contributing/index.html">Contributing to CodeIgniter</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../documentation/index.html">Writing CodeIgniter Documentation</a></li>
<
li class="toctree-l2"><class="reference internal" href="../DCO.html">Developer&#8217;s Certificate of Origin 1.1</a></li>
</ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../general/index.html">General Topics</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../general/urls.html">CodeIgniter URLs</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/controllers.html">Controllers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/reserved_names.html">Reserved Names</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/views.html">Views</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/models.html">Models</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/helpers.html">Helpers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/libraries.html">Using CodeIgniter Libraries</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/creating_libraries.html">Creating Libraries</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/drivers.html">Using CodeIgniter Drivers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/creating_drivers.html">Creating Drivers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/core_classes.html">Creating Core System Classes</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/ancillary_classes.html">Creating Ancillary Classes</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/hooks.html">Hooks Extending the Framework Core</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/autoloader.html">Auto-loading Resources</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/common_functions.html">Common Functions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/compatibility_functions.html">Compatibility Functions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/routing.html">URI Routing</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/errors.html">Error Handling</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/caching.html">Caching</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/profiling.html">Profiling Your Application</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/cli.html">Running via the CLI</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/managing_apps.html">Managing your Applications</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/environments.html">Handling Multiple Environments</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/alternative_php.html">Alternate PHP Syntax for View Files</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/security.html">Security</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/styleguide.html">PHP Style Guide</a></li>
</
ul>
</
li>
</
ul>
<
ul class="current">
<
li class="toctree-l1 current"><class="reference internal" href="index.html">Libraries</a><ul class="current">
<
li class="toctree-l2"><class="reference internal" href="benchmark.html">Benchmarking Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="caching.html">Caching Driver</a></li>
<
li class="toctree-l2"><class="reference internal" href="calendar.html">Calendaring Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="cart.html">Shopping Cart Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="config.html">Config Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="email.html">Email Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="encrypt.html">Encrypt Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="encryption.html">Encryption Library</a></li>
<
li class="toctree-l2 current"><class="current reference internal" href="">File Uploading Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="form_validation.html">Form Validation</a></li>
<
li class="toctree-l2"><class="reference internal" href="ftp.html">FTP Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="image_lib.html">Image Manipulation Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="input.html">Input Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="javascript.html">Javascript Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="language.html">Language Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="loader.html">Loader Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="migration.html">Migrations Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="output.html">Output Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="pagination.html">Pagination Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="parser.html">Template Parser Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="security.html">Security Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="sessions.html">Session Library</a></li>
<
li class="toctree-l2"><class="reference internal" href="table.html">HTML Table Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="trackback.html">Trackback Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="typography.html">Typography Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="unit_testing.html">Unit Testing Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="uri.html">URI Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="user_agent.html">User Agent Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="xmlrpc.html">XML-RPC and XML-RPC Server Classes</a></li>
<
li class="toctree-l2"><class="reference internal" href="zip.html">Zip Encoding Class</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../database/index.html">Database Reference</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../database/examples.html">Quick StartUsage Examples</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/configuration.html">Database Configuration</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/connecting.html">Connecting to a Database</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/queries.html">Running Queries</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/results.html">Generating Query Results</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/helpers.html">Query Helper Functions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/query_builder.html">Query Builder Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/transactions.html">Transactions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/metadata.html">Getting MetaData</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/call_function.html">Custom Function Calls</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/caching.html">Query Caching</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/forge.html">Database Manipulation with Database Forge</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/utilities.html">Database Utilities Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/db_driver_reference.html">Database Driver Reference</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../helpers/index.html">Helpers</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../helpers/array_helper.html">Array Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/captcha_helper.html">CAPTCHA Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/cookie_helper.html">Cookie Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/date_helper.html">Date Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/directory_helper.html">Directory Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/download_helper.html">Download Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/email_helper.html">Email Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/file_helper.html">File Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/form_helper.html">Form Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/html_helper.html">HTML Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/inflector_helper.html">Inflector Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/language_helper.html">Language Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/number_helper.html">Number Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/path_helper.html">Path Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/security_helper.html">Security Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/smiley_helper.html">Smiley Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/string_helper.html">String Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/text_helper.html">Text Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/typography_helper.html">Typography Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/url_helper.html">URL Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/xml_helper.html">XML Helper</a></li>
</
ul>
</
li>
</
ul>

      </
div>
    
      
  </
div>
</
div>
<
div id="nav2">
  <
a href="#" id="openToc">
    <
img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAKwCaAwERAAIRAQMRAf/EAHsAAQAABwEBAAAAAAAAAAAAAAABAwQFBgcIAgkBAQAAAAAAAAAAAAAAAAAAAAAQAAEDAwICBwYEAgsAAAAAAAIBAwQAEQUSBiEHkROTVNQWGDFBUVIUCHEiMtOUFWGBobHRQlMkZIRVEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwDSC+ygkOOaUoKigUCgUCgUCgUCgUCgUCgUCgkuGguIP9FBMFb0Hqg7We+3jlmIqqYFf4ub+/QYlnOR/LqIBKGFUbf8qWv971BytQXXE7Y3Lnm3HsFhp2TaZJAdchRXpIgSpdEJWxJEW3xoKV7F5OMy7JkQn2o7D6w33XGjEAkoiqrJEqIiOIiKuhePCgqp22dyYyS3CyWHnQ5joG61HkRnmnTbaFSMhExRVQRRVJU9iUHjE7ez+fJ0MFipmUNhBV8YUd2SoIV9KkjQla9ltegttBdPLW4/qocL+UTfrMiHW4+P9M71shuyrqaHTcxsl7jegpsji8nh5ZwMvDfgTm0RTjSmjYdFCS6KoOIipdFunCgmNYTMv457MMY6U7iI6oMieDDhRm1VbIhuoOkbqtuK0Hpzb+eZcYZexUxt6UyUqK2cd0SdjtgrhOgijcgERUlJOCIl6CpgbP3blRI8XgMjNARAyKNDfeRBdFDBVUAXgQrqH4pxoJTu2NysY97LP4ac1io5q1InHFeGO24LnVKJuKOkSQ/yKir+rh7aCLG1dzypZQI2FnvTgccYOM3FeN0XWERXAUEFVQgQkUktdLpegm+Td3/Xli/L+S/mYNJIOF9G/wBeLKrZHFb0akG6W1WtQWSg3Dyg5e7V3fipE3O4/wCrktyzYA+ufas2LbZIlmnAT2kvuoN1wft95augilglX/tzP3qCu9O3LL/wV/i5v79BvmTADq14UGu91467Z6U9y0HzH/ncj/U/sT/CgynZG7I2NezpZGUjIycJkYkZSG+uQ81pbBNKLxJfjwoMqZ3/ALYHl35AJ7/cuwHcu5k7r1Q5pHetBjquqVVJWGxj9Zrtcl/Ggy3dHMvauR3HFZj5nHNxSyW5JISYDMoIwx8tFIGHZhPNaykGapr6rUAiicEoMG21lMRj8buPAz8xhJrr7uOeiPTCyAwXUaGR1mgozbTusOsFLEiJ7fbQa/h7gcjy2H3V6xppwDNtUSxCJIqp7valBuWVzJ22xuCROXNNZiJkMtms0DbjUkAZjzoDrTMd9dDRI44ZC2YsrYdKWP2WDT2S3N9dNdlRYrGMYc06IURXSYb0igrpWS485xVNS6nF4rwslkoMwnbpgZLB7bmt5uMweAhDEl4B5uSLzzqTnnyVpW2jaJHRMSIjdDiiotvy3DOE5rYTEbkl5yFn28k7JyG4c7AU2HtLH1uKfaiMPI40CdYbpNtmLdwTSn5rewLNld+7TLdeal4WarWBkbVKBjgdElMJJwAAY5fl4kB3b1fp4XvagsGS3FjJfLzDNtS8aeXx7LzT7TyzByQE5PccRGRC0ZRUDRV6y62vbjagzLmJzS2vuPK43JY6aP1TW6Jz+RIWyFtyC06y3EkiiinAo7YCqfq1AqqnGgsOH3lhZO8d1pmcpB8j5XIm9OYlBJSQ/FSS4427DKO0RC8AlcEMhFdViRR1WDWR5t3WXVuL1d106kG9vdeye2g60+1FDyW0shIcXVpyroXt8I8dfd+NB1vioAdWnD3UF1+gD4UFc6CEKpagxXN43rwJLUHz7yX2c8zokt9uHlsPIhA4aRnnHJTLptIS6CNsY7iASpxUUMkReGpfbQW0vtN5pitvrsN28rwtBD0nc0+/Yft5XhaB6TuaXfsP28rwtA9J3NPv2H7eV4Wgek7mn37D9vK8LQPSdzT79h+3leFoHpO5pd+w/byvC0D0nc0u/Yft5XhaB6TuaXfsP28rwtA9J3NLv2H7eV4Wgek7ml37D9vK8LQPSdzS79h+3leFoHpO5p9+w/byvC0E9r7Reazy2HIYVPxkS/CUHVn26cosxyv2g7h89LYmZSXOenvLEQ1YaQ222RATcQCP8rSGqqA8S02W2pQ6FhMoAIlqCtsnwoCpdKClejI4i3Sgtb+GBxVuNBSFt1pV/RQefLjPyUDy4z8lA8uM/JQPLjPyUDy4z8lA8uM/JQPLjPyUDy4z8lA8uM/JQPLjPyUDy4z8lA8utJ/koJ7WCbBU/LQXOPAFq1koK8B0pag90CggtBBf6qB0UDooHRQOigdFA6KB0UDooHRQOigdFA6KB0UDooI0EaBQf//Z" title="Toggle Table of Contents" alt="Toggle Table of Contents" />
  </
a>
</
div>

  <
div class="wy-grid-for-nav">

    
    <
nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <
div class="wy-side-nav-search">
        
          <
a href="../index.html" class="fa fa-home"CodeIgniter</a>
        
        
<
div role="search">
  <
form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <
input type="text" name="q" placeholder="Search docs" />
    <
input type="hidden" name="check_keywords" value="yes" />
    <
input type="hidden" name="area" value="default" />
  </
form>
</
div>
      </
div>

      <
div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
        
          
          
              <
ul>
<
li class="toctree-l1"><class="reference internal" href="../general/welcome.html">Welcome to CodeIgniter</a><ul class="simple">
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../installation/index.html">Installation Instructions</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../installation/downloads.html">Downloading CodeIgniter</a></li>
<
li class="toctree-l2"><class="reference internal" href="../installation/index.html">Installation Instructions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../installation/upgrading.html">Upgrading From a Previous Version</a></li>
<
li class="toctree-l2"><class="reference internal" href="../installation/troubleshooting.html">Troubleshooting</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../overview/index.html">CodeIgniter Overview</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../overview/getting_started.html">Getting Started</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/at_a_glance.html">CodeIgniter at a Glance</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/features.html">Supported Features</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/appflow.html">Application Flow Chart</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/mvc.html">Model-View-Controller</a></li>
<
li class="toctree-l2"><class="reference internal" href="../overview/goals.html">Architectural Goals</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../tutorial/index.html">Tutorial</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/static_pages.html">Static pages</a></li>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/news_section.html">News section</a></li>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/create_news_items.html">Create news items</a></li>
<
li class="toctree-l2"><class="reference internal" href="../tutorial/conclusion.html">Conclusion</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../contributing/index.html">Contributing to CodeIgniter</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../documentation/index.html">Writing CodeIgniter Documentation</a></li>
<
li class="toctree-l2"><class="reference internal" href="../DCO.html">Developer&#8217;s Certificate of Origin 1.1</a></li>
</ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../general/index.html">General Topics</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../general/urls.html">CodeIgniter URLs</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/controllers.html">Controllers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/reserved_names.html">Reserved Names</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/views.html">Views</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/models.html">Models</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/helpers.html">Helpers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/libraries.html">Using CodeIgniter Libraries</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/creating_libraries.html">Creating Libraries</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/drivers.html">Using CodeIgniter Drivers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/creating_drivers.html">Creating Drivers</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/core_classes.html">Creating Core System Classes</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/ancillary_classes.html">Creating Ancillary Classes</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/hooks.html">Hooks Extending the Framework Core</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/autoloader.html">Auto-loading Resources</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/common_functions.html">Common Functions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/compatibility_functions.html">Compatibility Functions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/routing.html">URI Routing</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/errors.html">Error Handling</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/caching.html">Caching</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/profiling.html">Profiling Your Application</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/cli.html">Running via the CLI</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/managing_apps.html">Managing your Applications</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/environments.html">Handling Multiple Environments</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/alternative_php.html">Alternate PHP Syntax for View Files</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/security.html">Security</a></li>
<
li class="toctree-l2"><class="reference internal" href="../general/styleguide.html">PHP Style Guide</a></li>
</
ul>
</
li>
</
ul>
<
ul class="current">
<
li class="toctree-l1 current"><class="reference internal" href="index.html">Libraries</a><ul class="current">
<
li class="toctree-l2"><class="reference internal" href="benchmark.html">Benchmarking Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="caching.html">Caching Driver</a></li>
<
li class="toctree-l2"><class="reference internal" href="calendar.html">Calendaring Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="cart.html">Shopping Cart Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="config.html">Config Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="email.html">Email Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="encrypt.html">Encrypt Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="encryption.html">Encryption Library</a></li>
<
li class="toctree-l2 current"><class="current reference internal" href="">File Uploading Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="form_validation.html">Form Validation</a></li>
<
li class="toctree-l2"><class="reference internal" href="ftp.html">FTP Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="image_lib.html">Image Manipulation Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="input.html">Input Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="javascript.html">Javascript Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="language.html">Language Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="loader.html">Loader Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="migration.html">Migrations Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="output.html">Output Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="pagination.html">Pagination Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="parser.html">Template Parser Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="security.html">Security Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="sessions.html">Session Library</a></li>
<
li class="toctree-l2"><class="reference internal" href="table.html">HTML Table Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="trackback.html">Trackback Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="typography.html">Typography Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="unit_testing.html">Unit Testing Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="uri.html">URI Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="user_agent.html">User Agent Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="xmlrpc.html">XML-RPC and XML-RPC Server Classes</a></li>
<
li class="toctree-l2"><class="reference internal" href="zip.html">Zip Encoding Class</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../database/index.html">Database Reference</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../database/examples.html">Quick StartUsage Examples</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/configuration.html">Database Configuration</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/connecting.html">Connecting to a Database</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/queries.html">Running Queries</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/results.html">Generating Query Results</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/helpers.html">Query Helper Functions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/query_builder.html">Query Builder Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/transactions.html">Transactions</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/metadata.html">Getting MetaData</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/call_function.html">Custom Function Calls</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/caching.html">Query Caching</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/forge.html">Database Manipulation with Database Forge</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/utilities.html">Database Utilities Class</a></li>
<
li class="toctree-l2"><class="reference internal" href="../database/db_driver_reference.html">Database Driver Reference</a></li>
</
ul>
</
li>
</
ul>
<
ul>
<
li class="toctree-l1"><class="reference internal" href="../helpers/index.html">Helpers</a><ul>
<
li class="toctree-l2"><class="reference internal" href="../helpers/array_helper.html">Array Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/captcha_helper.html">CAPTCHA Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/cookie_helper.html">Cookie Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/date_helper.html">Date Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/directory_helper.html">Directory Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/download_helper.html">Download Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/email_helper.html">Email Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/file_helper.html">File Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/form_helper.html">Form Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/html_helper.html">HTML Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/inflector_helper.html">Inflector Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/language_helper.html">Language Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/number_helper.html">Number Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/path_helper.html">Path Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/security_helper.html">Security Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/smiley_helper.html">Smiley Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/string_helper.html">String Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/text_helper.html">Text Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/typography_helper.html">Typography Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/url_helper.html">URL Helper</a></li>
<
li class="toctree-l2"><class="reference internal" href="../helpers/xml_helper.html">XML Helper</a></li>
</
ul>
</
li>
</
ul>

          
        
      </
div>
      &
nbsp;
    </
nav>

    <
section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <
nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <
i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <
a href="../index.html">CodeIgniter</a>
      </
nav>


      
      <
div class="wy-nav-content">
        <
div class="rst-content">
          <
div role="navigation" aria-label="breadcrumbs navigation">
  <
ul class="wy-breadcrumbs">
    <
li><a href="../index.html">Docs</a> &raquo;</li>
      
        <
li><a href="index.html">Libraries</a> &raquo;</li>
      
    <
li>File Uploading Class</li>
    <
li class="wy-breadcrumbs-aside">
      
    </
li>
    <
div style="float:right;margin-left:5px;" id="closeMe">
      <
img title="Classic Layout" alt="classic layout" src="data:image/gif;base64,R0lGODlhFAAUAJEAAAAAADMzM////wAAACH5BAUUAAIALAAAAAAUABQAAAImlI+py+0PU5gRBRDM3DxbWoXis42X13USOLauUIqnlsaH/eY6UwAAOw==" />
    </
div>
  </
ul>
  <
hr/>
</
div>
          <
div role="main" class="document">
            
  <
div class="section" id="file-uploading-class">
<
h1>File Uploading Class<class="headerlink" href="#file-uploading-class" title="Permalink to this headline"></a></h1>
<
p>CodeIgniter&#8217;s File Uploading Class permits files to be uploaded. You can
set various preferencesrestricting the type and size of the files.</p>
<
div class="contents local topic" id="contents">
<
ul class="simple">
<
li><class="reference internal" href="#the-process" id="id1">The Process</a><ul>
<
li><class="reference internal" href="#creating-the-upload-form" id="id2">Creating the Upload Form</a></li>
<
li><class="reference internal" href="#the-success-page" id="id3">The Success Page</a></li>
<
li><class="reference internal" href="#the-controller" id="id4">The Controller</a></li>
<
li><class="reference internal" href="#the-upload-directory" id="id5">The Upload Directory</a></li>
<
li><class="reference internal" href="#try-it" id="id6">Try it!</a></li>
</
ul>
</
li>
<
li><class="reference internal" href="#reference-guide" id="id7">Reference Guide</a><ul>
<
li><class="reference internal" href="#initializing-the-upload-class" id="id8">Initializing the Upload Class</a></li>
<
li><class="reference internal" href="#setting-preferences" id="id9">Setting Preferences</a></li>
<
li><class="reference internal" href="#preferences" id="id10">Preferences</a></li>
<
li><class="reference internal" href="#setting-preferences-in-a-config-file" id="id11">Setting preferences in a config file</a></li>
</
ul>
</
li>
<
li><class="reference internal" href="#class-reference" id="id12">Class Reference</a></li>
</
ul>
</
div>
<
div class="custom-index container"></div><div class="section" id="the-process">
<
h2><class="toc-backref" href="#id1">The Process</a><class="headerlink" href="#the-process" title="Permalink to this headline"></a></h2>
<
p>Uploading a file involves the following general process:</p>
<
ul class="simple">
<
li>An upload form is displayedallowing a user to select a file and
upload it.</li>
<
li>When the form is submittedthe file is uploaded to the destination
you specify
.</li>
<
li>Along the waythe file is validated to make sure it is allowed to be
uploaded based on the preferences you set
.</li>
<
li>Once uploadedthe user will be shown a success message.</li>
</
ul>
<
p>To demonstrate this process here is brief tutorialAfterward you&#8217;ll
find reference information.</p>
<
div class="section" id="creating-the-upload-form">
<
h3><class="toc-backref" href="#id2">Creating the Upload Form</a><class="headerlink" href="#creating-the-upload-form" title="Permalink to this headline"></a></h3>
<
p>Using a text editorcreate a form called upload_form.phpIn itplace
this code 
and save it to your <strong>application/views/</strongdirectory:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="o">&lt;</span><span class="nx">html</span><span class="o">&gt;</span>
<
span class="o">&lt;</span><span class="nx">head</span><span class="o">&gt;</span>
<
span class="o">&lt;</span><span class="nx">title</span><span class="o">&gt;</span><span class="nx">Upload</span> <span class="nx">Form</span><span class="o">&lt;/</span><span class="nx">title</span><span class="o">&gt;</span>
<
span class="o">&lt;/</span><span class="nx">head</span><span class="o">&gt;</span>
<
span class="o">&lt;</span><span class="nx">body</span><span class="o">&gt;</span>

<
span class="o">&lt;?</span><span class="nx">php</span> <span class="k">echo</span> <span class="nv">$error</span><span class="p">;</span><span class="cp">?&gt;</span>

<
span class="cp">&lt;?php</span> <span class="k">echo</span> <span class="nx">form_open_multipart</span><span class="p">(</span><span class="s1">&#39;upload/do_upload&#39;</span><span class="p">);</span><span class="cp">?&gt;</span>

<span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;file&quot;</span> <span class="na">name=</span><span class="s">&quot;userfile&quot;</span> <span class="na">size=</span><span class="s">&quot;20&quot;</span> <span class="nt">/&gt;</span>

<
span class="nt">&lt;br</span> <span class="nt">/&gt;&lt;br</span> <span class="nt">/&gt;</span>

<
span class="nt">&lt;input</span> <span class="na">type=</span><span class="s">&quot;submit&quot;</span> <span class="na">value=</span><span class="s">&quot;upload&quot;</span> <span class="nt">/&gt;</span>

<
span class="nt">&lt;/form&gt;</span>

<
span class="nt">&lt;/body&gt;</span>
<
span class="nt">&lt;/html&gt;</span>
</
pre></div>
</
div>
<
p>You&#8217;ll notice we are using a form helper to create the opening form tag.
File uploads require a multipart formso the helper creates the proper
syntax 
for youYou&#8217;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>
</
div>
<
div class="section" id="the-success-page">
<
h3><class="toc-backref" href="#id3">The Success Page</a><class="headerlink" href="#the-success-page" title="Permalink to this headline"></a></h3>
<
p>Using a text editorcreate a form called upload_success.phpIn it,
place this code and save it to your <strong>application/views/</strongdirectory:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="o">&lt;</span><span class="nx">html</span><span class="o">&gt;</span>
<
span class="o">&lt;</span><span class="nx">head</span><span class="o">&gt;</span>
<
span class="o">&lt;</span><span class="nx">title</span><span class="o">&gt;</span><span class="nx">Upload</span> <span class="nx">Form</span><span class="o">&lt;/</span><span class="nx">title</span><span class="o">&gt;</span>
<
span class="o">&lt;/</span><span class="nx">head</span><span class="o">&gt;</span>
<
span class="o">&lt;</span><span class="nx">body</span><span class="o">&gt;</span>

<
span class="o">&lt;</span><span class="nx">h3</span><span class="o">&gt;</span><span class="nx">Your</span> <span class="nb">file</span> <span class="nx">was</span> <span class="nx">successfully</span> <span class="nx">uploaded</span><span class="o">!&lt;/</span><span class="nx">h3</span><span class="o">&gt;</span>

<
span class="o">&lt;</span><span class="nx">ul</span><span class="o">&gt;</span>
<
span class="o">&lt;?</span><span class="nx">php</span> <span class="k">foreach</span> <span class="p">(</span><span class="nv">$upload_data</span> <span class="k">as</span> <span class="nv">$item</span> <span class="o">=&gt;</span> <span class="nv">$value</span><span class="p">)</span><span class="o">:?&gt;</span>
<
span class="o">&lt;</span><span class="nx">li</span><span class="o">&gt;&lt;?</span><span class="nx">php</span> <span class="k">echo</span> <span class="nv">$item</span><span class="p">;</span><span class="cp">?&gt;</span>: <span class="cp">&lt;?php</span> <span class="k">echo</span> <span class="nv">$value</span><span class="p">;</span><span class="cp">?&gt;</span><span class="nt">&lt;/li&gt;</span>
<
span class="cp">&lt;?php</span> <span class="k">endforeach</span><span class="p">;</span> <span class="cp">?&gt;</span>
<
span class="nt">&lt;/ul&gt;</span>

<
span class="nt">&lt;p&gt;</span><span class="cp">&lt;?php</span> <span class="k">echo</span> <span class="nx">anchor</span><span class="p">(</span><span class="s1">&#39;upload&#39;</span><span class="p">,</span> <span class="s1">&#39;Upload Another File!&#39;</span><span class="p">);</span> <span class="cp">?&gt;</span><span class="nt">&lt;/p&gt;</span>

<span class="nt">&lt;/body&gt;</span>
<
span class="nt">&lt;/html&gt;</span>
</
pre></div>
</
div>
</
div>
<
div class="section" id="the-controller">
<
h3><class="toc-backref" href="#id4">The Controller</a><class="headerlink" href="#the-controller" title="Permalink to this headline"></a></h3>
<
p>Using a text editorcreate a controller called Upload.phpIn itplace
this code 
and save it to your <strong>application/controllers/</strongdirectory:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="o">&lt;?</span><span class="nx">php</span>

<
span class="k">class</span> <span class="nc">Upload</span> <span class="k">extends</span> <span class="nx">CI_Controller</span> <span class="p">{</span>

        <
span class="k">public</span> <span class="k">function</span> <span class="nf">__construct</span><span class="p">()</span>
        <
span class="p">{</span>
                <
span class="k">parent</span><span class="o">::</span><span class="na">__construct</span><span class="p">();</span>
                <
span class="nv">$this</span><span class="o">-&gt;</span><span class="na">load</span><span class="o">-&gt;</span><span class="na">helper</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="s1">&#39;form&#39;</span><span class="p">,</span> <span class="s1">&#39;url&#39;</span><span class="p">));</span>
        
<span class="p">}</span>

        <
span class="k">public</span> <span class="k">function</span> <span class="nf">index</span><span class="p">()</span>
        <
span class="p">{</span>
                <
span class="nv">$this</span><span class="o">-&gt;</span><span class="na">load</span><span class="o">-&gt;</span><span class="na">view</span><span class="p">(</span><span class="s1">&#39;upload_form&#39;</span><span class="p">,</span> <span class="k">array</span><span class="p">(</span><span class="s1">&#39;error&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39; &#39;</span> <span class="p">));</span>
        
<span class="p">}</span>

        <
span class="k">public</span> <span class="k">function</span> <span class="nf">do_upload</span><span class="p">()</span>
        <
span class="p">{</span>
                <
span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;upload_path&#39;</span><span class="p">]</span>          <span class="o">=</span> <span class="s1">&#39;./uploads/&#39;</span><span class="p">;</span>
                
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;allowed_types&#39;</span><span class="p">]</span>        <span class="o">=</span> <span class="s1">&#39;gif|jpg|png&#39;</span><span class="p">;</span>
                
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;max_size&#39;</span><span class="p">]</span>             <span class="o">=</span> <span class="mi">100</span><span class="p">;</span>
                
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;max_width&#39;</span><span class="p">]</span>            <span class="o">=</span> <span class="mi">1024</span><span class="p">;</span>
                
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;max_height&#39;</span><span class="p">]</span>           <span class="o">=</span> <span class="mi">768</span><span class="p">;</span>

                
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">load</span><span class="o">-&gt;</span><span class="na">library</span><span class="p">(</span><span class="s1">&#39;upload&#39;</span><span class="p">,</span> <span class="nv">$config</span><span class="p">);</span>

                
<span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">upload</span><span class="o">-&gt;</span><span class="na">do_upload</span><span class="p">(</span><span class="s1">&#39;userfile&#39;</span><span class="p">))</span>
                
<span class="p">{</span>
                        <
span class="nv">$error</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">&#39;error&#39;</span> <span class="o">=&gt;</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">upload</span><span class="o">-&gt;</span><span class="na">display_errors</span><span class="p">());</span>

                        
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">load</span><span class="o">-&gt;</span><span class="na">view</span><span class="p">(</span><span class="s1">&#39;upload_form&#39;</span><span class="p">,</span> <span class="nv">$error</span><span class="p">);</span>
                
<span class="p">}</span>
                <
span class="k">else</span>
                <
span class="p">{</span>
                        <
span class="nv">$data</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span><span class="s1">&#39;upload_data&#39;</span> <span class="o">=&gt;</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="na">upload</span><span class="o">-&gt;</span><span class="na">data</span><span class="p">());</span>

                        
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">load</span><span class="o">-&gt;</span><span class="na">view</span><span class="p">(</span><span class="s1">&#39;upload_success&#39;</span><span class="p">,</span> <span class="nv">$data</span><span class="p">);</span>
                
<span class="p">}</span>
        <
span class="p">}</span>
<
span class="p">}</span>
<
span class="cp">?&gt;</span>
</
pre></div>
</
div>
</
div>
<
div class="section" id="the-upload-directory">
<
h3><class="toc-backref" href="#id5">The Upload Directory</a><class="headerlink" href="#the-upload-directory" title="Permalink to this headline"></a></h3>
<
p>You&#8217;ll need a destination directory for your uploaded images. Create a
directory at the root of your CodeIgniter installation called uploads
and set its file permissions to 777.</p>
</
div>
<
div class="section" id="try-it">
<
h3><class="toc-backref" href="#id6">Try it!</a><class="headerlink" href="#try-it" title="Permalink to this headline"></a></h3>
<
p>To try your formvisit your site using a URL similar to this one:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="nx">example</span><span class="o">.</span><span class="nx">com</span><span class="o">/</span><span class="nx">index</span><span class="o">.</span><span class="nx">php</span><span class="o">/</span><span class="nx">upload</span><span class="o">/</span>
</
pre></div>
</
div>
<
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>
</
div>
</
div>
<
div class="section" id="reference-guide">
<
h2><class="toc-backref" href="#id7">Reference Guide</a><class="headerlink" href="#reference-guide" title="Permalink to this headline"></a></h2>
<
div class="section" id="initializing-the-upload-class">
<
h3><class="toc-backref" href="#id8">Initializing the Upload Class</a><class="headerlink" href="#initializing-the-upload-class" title="Permalink to this headline"></a></h3>
<
p>Like most other classes in CodeIgniterthe Upload class is initialized
in your controller using the 
<tt class="docutils literal"><span class="pre">$this-&gt;load-&gt;library()</span></ttmethod:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">load</span><span class="o">-&gt;</span><span class="na">library</span><span class="p">(</span><span class="s1">&#39;upload&#39;</span><span class="p">);</span>
</pre></div>
</
div>
<
p>Once the Upload class is loadedthe object will be available using:
$this-&gt;upload</p>
</
div>
<
div class="section" id="setting-preferences">
<
h3><class="toc-backref" href="#id9">Setting Preferences</a><class="headerlink" href="#setting-preferences" title="Permalink to this headline"></a></h3>
<
p>Similar to other librariesyou&#8217;ll control what is allowed to be upload
based on your preferencesIn the controller you built above you set the
following preferences
:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;upload_path&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;./uploads/&#39;</span><span class="p">;</span>
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;allowed_types&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;gif|jpg|png&#39;</span><span class="p">;</span>
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;max_size&#39;</span><span class="p">]</span>     <span class="o">=</span> <span class="s1">&#39;100&#39;</span><span class="p">;</span>
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;max_width&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1024&#39;</span><span class="p">;</span>
<span class="nv">$config</span><span class="p">[</span><span class="s1">&#39;max_height&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;768&#39;</span><span class="p">;</span>

<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">load</span><span class="o">-&gt;</span><span class="na">library</span><span class="p">(</span><span class="s1">&#39;upload&#39;</span><span class="p">,</span> <span class="nv">$config</span><span class="p">);</span>

<span class="c1">// Alternately you can set preferences by calling the ``initialize()`` method. Useful if you auto-load the class:</span>
<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">upload</span><span class="o">-&gt;</span><span class="na">initialize</span><span class="p">(</span><span class="nv">$config</span><span class="p">);</span>
</
pre></div>
</
div>
<
p>The above preferences should be fairly self-explanatoryBelow is a
table describing all available preferences
.</p>
</
div>
<
div class="section" id="preferences">
<
h3><class="toc-backref" href="#id10">Preferences</a><class="headerlink" href="#preferences" title="Permalink to this headline"></a></h3>
<
p>The following preferences are availableThe default value indicates
what will be used 
if you do not specify that preference.</p>
<
table border="1" class="docutils">
<
colgroup>
<
col width="20%" />
<
col width="12%" />
<
col width="16%" />
<
col width="51%" />
</
colgroup>
<
thead valign="bottom">
<
tr class="row-odd"><th class="head">Preference</th>
<
th class="head">Default Value</th>
<
th class="head">Options</th>
<
th class="head">Description</th>
</
tr>
</
thead>
<
tbody valign="top">
<
tr class="row-even"><td><strong>upload_path</strong></td>
<
td>None</td>
<
td>None</td>
<
td>The path to the directory where the upload should be placedThe
directory must be writable 
and the path can be absolute or relative.</td>
</
tr>
<
tr class="row-odd"><td><strong>allowed_types</strong></td>
<
td>None</td>
<
td>None</td>
<
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.
Can be either an array or a pipe-separated string.</td>
</
tr>
<
tr class="row-even"><td><strong>file_name</strong></td>
<
td>None</td>
<
td>Desired file name</td>
<
td>If set CodeIgniter will rename the uploaded file to this nameThe
extension provided in the file name must also be an allowed file type
.
If 
no extension is provided in the original file_name will be used.</td>
</
tr>
<
tr class="row-odd"><td><strong>file_ext_tolower</strong></td>
<
td>FALSE</td>
<
td>TRUE/FALSE (boolean)</td>
<
td>If set to TRUEthe file extension will be forced to lower case</td>
</
tr>
<
tr class="row-even"><td><strong>overwrite</strong></td>
<
td>FALSE</td>
<
td>TRUE/FALSE (boolean)</td>
<
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 falsea number will
be appended to the filename 
if another with the same name exists.</td>
</
tr>
<
tr class="row-odd"><td><strong>max_size</strong></td>
<
td>0</td>
<
td>None</td>
<
td>The maximum size (in kilobytesthat the file can beSet to zero for no
limit
NoteMost PHP installations have their own limit, as specified
in the php
.ini fileUsually 2 MB (or 2048 KBby default.</td>
</
tr>
<
tr class="row-even"><td><strong>max_width</strong></td>
<
td>0</td>
<
td>None</td>
<
td>The maximum width (in pixelsthat the image can beSet to zero for no
limit
.</td>
</
tr>
<
tr class="row-odd"><td><strong>max_height</strong></td>
<
td>0</td>
<
td>None</td>
<
td>The maximum height (in pixelsthat the image can beSet to zero for no
limit
.</td>
</
tr>
<
tr class="row-even"><td><strong>min_width</strong></td>
<
td>0</td>
<
td>None</td>
<
td>The minimum width (in pixelsthat the image can beSet to zero for no
limit
.</td>
</
tr>
<
tr class="row-odd"><td><strong>min_height</strong></td>
<
td>0</td>
<
td>None</td>
<
td>The minimum height (in pixelsthat the image can beSet to zero for no
limit
.</td>
</
tr>
<
tr class="row-even"><td><strong>max_filename</strong></td>
<
td>0</td>
<
td>None</td>
<
td>The maximum length that a file name can beSet to zero for no limit.</td>
</
tr>
<
tr class="row-odd"><td><strong>max_filename_increment</strong></td>
<
td>100</td>
<
td>None</td>
<
td>When overwrite is set to FALSE, use this to set the maximum filename
increment 
for CodeIgniter to append to the filename.</td>
</
tr>
<
tr class="row-even"><td><strong>encrypt_name</strong></td>
<
td>FALSE</td>
<
td>TRUE/FALSE (boolean)</td>
<
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 class="row-odd"><td><strong>remove_spaces</strong></td>
<
td>TRUE</td>
<
td>TRUE/FALSE (boolean)</td>
<
td>If set to TRUEany spaces in the file name will be converted to
underscores
This is recommended.</td>
</
tr>
<
tr class="row-even"><td><strong>detect_mime</strong></td>
<
td>TRUE</td>
<
td>TRUE/FALSE (boolean)</td>
<
td>If set to TRUEa server side detection of the file type will be
performed to avoid code injection attacks
. DO NOT disable this option
unless you have no other option 
as that would cause a security risk.</td>
</
tr>
<
tr class="row-odd"><td><strong>mod_mime_fix</strong></td>
<
td>TRUE</td>
<
td>TRUE/FALSE (boolean)</td>
<
td>If set to TRUEmultiple filename extensions will be suffixed with an
underscore in order to avoid triggering 
<class="reference external" href="http://httpd.apache.org/docs/2.0/mod/mod_mime.html#multipleext">Apache mod_mime</a>.
DO 
NOT turn off this option if your upload directory is public, as this
is a security risk
.</td>
</
tr>
</
tbody>
</
table>
</
div>
<
div class="section" id="setting-preferences-in-a-config-file">
<
h3><class="toc-backref" href="#id11">Setting preferences in a config file</a><class="headerlink" href="#setting-preferences-in-a-config-file" title="Permalink to this headline"></a></h3>
<
p>If you prefer not to set preferences using the above methodyou can
instead put them into a config file
Simply create a new file called the
upload
.phpadd the $config array in that fileThen save the file in:
<
strong>config/upload.php</strong> and it will be used automaticallyYou will NOT
need to 
use the <tt class="docutils literal"><span class="pre">$this-&gt;upload-&gt;initialize()</span></ttmethod if you save your
preferences in a config file
.</p>
</
div>
</
div>
<
div class="section" id="class-reference">
<
h2><class="toc-backref" href="#id12">Class Reference</a><class="headerlink" href="#class-reference" title="Permalink to this headline"></a></h2>
<
dl class="class">
<
dt id="CI_Upload">
<
em class="property">class </em><tt class="descname">CI_Upload</tt><class="headerlink" href="#CI_Upload" title="Permalink to this definition"></a></dt>
<
dd><dl class="method">
<
dt id="CI_Upload::initialize">
<
tt class="descname">initialize</tt><big>(</big><span class="optional">[</span><em>array $config = array()</em><span class="optional">[</span>, <em>$reset TRUE</em><span class="optional">]</span><span class="optional">]</span><big>)</big><class="headerlink" href="#CI_Upload::initialize" title="Permalink to this definition"></a></dt>
<
dd><table class="docutils field-list" frame="void" rules="none">
<
col class="field-name" />
<
col class="field-body" />
<
tbody valign="top">
<
tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<
li><strong>$config</strong> (<em>array</em>) &#8211; Preferences</li>
<li><strong>$reset</strong> (<em>bool</em>) &#8211; Whether to reset preferences (that are not provided in $config) to their defaults</li>
</ul>
</
td>
</
tr>
<
tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><class="first">CI_Upload instance (method chaining)</p>
</
td>
</
tr>
<
tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><class="first last">CI_Upload</p>
</
td>
</
tr>
</
tbody>
</
table>
</
dd></dl>

<
dl class="method">
<
dt id="CI_Upload::do_upload">
<
tt class="descname">do_upload</tt><big>(</big><span class="optional">[</span><em>$field 'userfile'</em><span class="optional">]</span><big>)</big><class="headerlink" href="#CI_Upload::do_upload" title="Permalink to this definition"></a></dt>
<
dd><table class="docutils field-list" frame="void" rules="none">
<
col class="field-name" />
<
col class="field-body" />
<
tbody valign="top">
<
tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<
li><strong>$field</strong> (<em>string</em>) &#8211; Name of the form field</li>
</ul>
</
td>
</
tr>
<
tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><class="first">TRUE on successFALSE on failure</p>
</
td>
</
tr>
<
tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><class="first last">bool</p>
</
td>
</
tr>
</
tbody>
</
table>
<
p>Performs the upload based on the preferences you&#8217;ve set.</p>
<div class="admonition note">
<
class="first admonition-title">Note</p>
<
class="last">By default the upload routine expects the file to come from
a form field called userfile
, and the form must be of type
&#8220;multipart&#8221;.</p>
</div>
<
div class="highlight-ci"><div class="highlight"><pre><span class="o">&lt;</span><span class="nx">form</span> <span class="nx">method</span><span class="o">=</span><span class="s2">&quot;post&quot;</span> <span class="nx">action</span><span class="o">=</span><span class="s2">&quot;some_action&quot;</span> <span class="nx">enctype</span><span class="o">=</span><span class="s2">&quot;multipart/form-data&quot;</span> <span class="o">/&gt;</span>
</
pre></div>
</
div>
<
p>If you would like to set your own field name simply pass its value to
the 
<tt class="docutils literal"><span class="pre">do_upload()</span></ttmethod:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="nv">$field_name</span> <span class="o">=</span> <span class="s2">&quot;some_field_name&quot;</span><span class="p">;</span>
<
span class="nv">$this</span><span class="o">-&gt;</span><span class="na">upload</span><span class="o">-&gt;</span><span class="na">do_upload</span><span class="p">(</span><span class="nv">$field_name</span><span class="p">);</span>
</
pre></div>
</
div>
</
dd></dl>

<
dl class="method">
<
dt id="CI_Upload::display_errors">
<
tt class="descname">display_errors</tt><big>(</big><span class="optional">[</span><em>$open '&lt;p&gt;'</em><span class="optional">[</span>, <em>$close '&lt;/p&gt;'</em><span class="optional">]</span><span class="optional">]</span><big>)</big><class="headerlink" href="#CI_Upload::display_errors" title="Permalink to this definition"></a></dt>
<
dd><table class="docutils field-list" frame="void" rules="none">
<
col class="field-name" />
<
col class="field-body" />
<
tbody valign="top">
<
tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<
li><strong>$open</strong> (<em>string</em>) &#8211; Opening markup</li>
<li><strong>$close</strong> (<em>string</em>) &#8211; Closing markup</li>
</ul>
</
td>
</
tr>
<
tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><class="first">Formatted error message(s)</p>
</
td>
</
tr>
<
tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><class="first last">string</p>
</
td>
</
tr>
</
tbody>
</
table>
<
p>Retrieves any error messages if the <tt class="docutils literal"><span class="pre">do_upload()</span></ttmethod returned
false
The method does not echo automaticallyit returns the data so
you can assign it however you need
.</p>
<
p><strong>Formatting Errors</strong></p>
<
blockquote>
<
div><p>By default the above method wraps any errors within &lt;p&gttagsYou can
set your own delimiters like this
:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">upload</span><span class="o">-&gt;</span><span class="na">display_errors</span><span class="p">(</span><span class="s1">&#39;&lt;p&gt;&#39;</span><span class="p">,</span> <span class="s1">&#39;&lt;/p&gt;&#39;</span><span class="p">);</span>
</pre></div>
</
div>
</
div></blockquote>
</
dd></dl>

<
dl class="method">
<
dt id="CI_Upload::data">
<
tt class="descname">data</tt><big>(</big><span class="optional">[</span><em>$index NULL</em><span class="optional">]</span><big>)</big><class="headerlink" href="#CI_Upload::data" title="Permalink to this definition"></a></dt>
<
dd><table class="docutils field-list" frame="void" rules="none">
<
col class="field-name" />
<
col class="field-body" />
<
tbody valign="top">
<
tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<
li><strong>$data</strong> (<em>string</em>) &#8211; Element to return instead of the full array</li>
</ul>
</
td>
</
tr>
<
tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><class="first">Information about the uploaded file</p>
</
td>
</
tr>
<
tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><class="first last">mixed</p>
</
td>
</
tr>
</
tbody>
</
table>
<
p>This is a helper method that returns an array containing all of the
data related to the file you uploaded
Here is the array prototype:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="k">Array</span>
<
span class="p">(</span>
        <
span class="p">[</span><span class="nx">file_name</span><span class="p">]</span>     <span class="o">=&gt;</span> <span class="nx">mypic</span><span class="o">.</span><span class="nx">jpg</span>
        <
span class="p">[</span><span class="nx">file_type</span><span class="p">]</span>     <span class="o">=&gt;</span> <span class="nx">image</span><span class="o">/</span><span class="nx">jpeg</span>
        <
span class="p">[</span><span class="nx">file_path</span><span class="p">]</span>     <span class="o">=&gt;</span> <span class="o">/</span><span class="nx">path</span><span class="o">/</span><span class="nx">to</span><span class="o">/</span><span class="nx">your</span><span class="o">/</span><span class="nx">upload</span><span class="o">/</span>
        <
span class="p">[</span><span class="nx">full_path</span><span class="p">]</span>     <span class="o">=&gt;</span> <span class="o">/</span><span class="nx">path</span><span class="o">/</span><span class="nx">to</span><span class="o">/</span><span class="nx">your</span><span class="o">/</span><span class="nx">upload</span><span class="o">/</span><span class="nx">jpg</span><span class="o">.</span><span class="nx">jpg</span>
        <
span class="p">[</span><span class="nx">raw_name</span><span class="p">]</span>      <span class="o">=&gt;</span> <span class="nx">mypic</span>
        <
span class="p">[</span><span class="nx">orig_name</span><span class="p">]</span>     <span class="o">=&gt;</span> <span class="nx">mypic</span><span class="o">.</span><span class="nx">jpg</span>
        <
span class="p">[</span><span class="nx">client_name</span><span class="p">]</span>   <span class="o">=&gt;</span> <span class="nx">mypic</span><span class="o">.</span><span class="nx">jpg</span>
        <
span class="p">[</span><span class="nx">file_ext</span><span class="p">]</span>      <span class="o">=&gt;</span> <span class="o">.</span><span class="nx">jpg</span>
        <
span class="p">[</span><span class="nx">file_size</span><span class="p">]</span>     <span class="o">=&gt;</span> <span class="mf">22.2</span>
        <
span class="p">[</span><span class="nx">is_image</span><span class="p">]</span>      <span class="o">=&gt;</span> <span class="mi">1</span>
        <
span class="p">[</span><span class="nx">image_width</span><span class="p">]</span>   <span class="o">=&gt;</span> <span class="mi">800</span>
        <
span class="p">[</span><span class="nx">image_height</span><span class="p">]</span>  <span class="o">=&gt;</span> <span class="mi">600</span>
        <
span class="p">[</span><span class="nx">image_type</span><span class="p">]</span>    <span class="o">=&gt;</span> <span class="nx">jpeg</span>
        <
span class="p">[</span><span class="nx">image_size_str</span><span class="p">]</span> <span class="o">=&gt;</span> <span class="nx">width</span><span class="o">=</span><span class="s2">&quot;800&quot;</span> <span class="nx">height</span><span class="o">=</span><span class="s2">&quot;200&quot;</span>
<
span class="p">)</span>
</
pre></div>
</
div>
<
p>To return one element from the array:</p>
<
div class="highlight-ci"><div class="highlight"><pre><span class="nv">$this</span><span class="o">-&gt;</span><span class="na">upload</span><span class="o">-&gt;</span><span class="na">data</span><span class="p">(</span><span class="s1">&#39;file_name&#39;</span><span class="p">);</span>       <span class="c1">// Returns: mypic.jpg</span>
</pre></div>
</
div>
<
p>Here&#8217;s a table explaining the above-displayed array items:</p>
<table border="1" class="docutils">
<
colgroup>
<
col width="14%" />
<
col width="86%" />
</
colgroup>
<
thead valign="bottom">
<
tr class="row-odd"><th class="head">Item</th>
<
th class="head">Description</th>
</
tr>
</
thead>
<
tbody valign="top">
<
tr class="row-even"><td>file_name</td>
<
td>Name of the file that was uploadedincluding the filename extension</td>
</
tr>
<
tr class="row-odd"><td>file_type</td>
<
td>File MIME type identifier</td>
</
tr>
<
tr class="row-even"><td>file_path</td>
<
td>Absolute server path to the file</td>
</
tr>
<
tr class="row-odd"><td>full_path</td>
<
td>Absolute server pathincluding the file name</td>
</
tr>
<
tr class="row-even"><td>raw_name</td>
<
td>File namewithout the extension</td>
</
tr>
<
tr class="row-odd"><td>orig_name</td>
<
td>Original file nameThis is only useful if you use the encrypted name option.</td>
</
tr>
<
tr class="row-even"><td>client_name</td>
<
td>File name as supplied by the client user agentprior to any file name preparation or incrementing</td>
</
tr>
<
tr class="row-odd"><td>file_ext</td>
<
td>Filename extensionperiod included</td>
</
tr>
<
tr class="row-even"><td>file_size</td>
<
td>File size in kilobytes</td>
</
tr>
<
tr class="row-odd"><td>is_image</td>
<
td>Whether the file is an image or notimagenot.</td>
</
tr>
<
tr class="row-even"><td>image_width</td>
<
td>Image width</td>
</
tr>
<
tr class="row-odd"><td>image_height</td>
<
td>Image height</td>
</
tr>
<
tr class="row-even"><td>image_type</td>
<
td>Image type (usually the file name extension without the period)</td>
</
tr>
<
tr class="row-odd"><td>image_size_str</td>
<
td>A string containing the width and height (useful to put into an image tag)</td>
</
tr>
</
tbody>
</
table>
</
dd></dl>

</
dd></dl>

</
div>
</
div>


          </
div>
          <
footer>
  
    <
div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <
a href="form_validation.html" class="btn btn-neutral float-right" title="Form Validation">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <
a href="encryption.html" class="btn btn-neutral" title="Encryption Library"><span class="fa fa-arrow-circle-left"></spanPrevious</a>
      
    </
div>
  

  <
hr/>

  <
div role="contentinfo">
    <
p>
        &
copyCopyright 2014 2015British Columbia Institute of Technology.
      
Last updated on Oct 312015.
    
</p>
  </
div>

  
Built with <a href="http://sphinx-doc.org/">Sphinx</ausing a <a href="https://github.com/snide/sphinx_rtd_theme">theme</aprovided by <a href="https://readthedocs.org">Read the Docs</a>.
  
</
footer>
        </
div>
      </
div>

    </
section>

  </
div>
  


  

    <
script type="text/javascript">
        var 
DOCUMENTATION_OPTIONS = {
            
URL_ROOT:'../',
            
VERSION:'3.0.3',
            
COLLAPSE_INDEX:false,
            
FILE_SUFFIX:'.html',
            
HAS_SOURCE:  false
        
};
    </
script>
      <
script type="text/javascript" src="../_static/jquery.js"></script>
      <
script type="text/javascript" src="../_static/underscore.js"></script>
      <
script type="text/javascript" src="../_static/doctools.js"></script>

  

  
  
    <
script type="text/javascript" src="../_static/js/theme.js"></script>
  

  
  
  <
script type="text/javascript">
      
jQuery(function () {
          
SphinxRtdTheme.StickyNav.enable();
      });
  </
script>
   

</
body>
</
html>
?>
Онлайн: 1
Реклама