如何在codeigniter中上传路径

时间:2016-03-18 10:04:39

标签: php codeigniter

我是CI的新手。目前我有以下内容:

$config['upload_path'] = './uploads/';

我只想知道如何在codeignitor中更新路径。我试过下面的代码。我有什么不对的吗?

<?php
    defined('BASEPATH')`enter code here` OR exit('No direct script access allowed');
    class Upload extends CI_Controller {

        function __construct()
        {
            parent::__construct();
            $this->load->helper(array('form', 'url'));
        }

        function index()
        {
            $this->load->view('upload_form', array('error' => ' ' ));
        }

        function do_upload()
        {
            $config['upload_path'] = './uploads/';

            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '100';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('Upload', $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);
            }
        }
    }
    ?>

3 个答案:

答案 0 :(得分:1)

来自您的代码您的文件将上传到根目录中的上传 文件夹$config['upload_path'] = './uploads/';这是您上传文件的存储位置。 您在应用程序文件夹所在的目录上传。 如果你想要你当前的代码。

您上传的图片需要一个目标文件夹。在CodeIgniter安装的根目录下创建一个名为uploads的文件夹,并将其文件权限设置为777。 默认情况下,上载例程期望文件来自名为userfile的表单字段。 来自file uploading class

enter image description here

答案 1 :(得分:0)

使用此库上传...易于使用

http://demo.codesamplez.com/codeigniter/file-upload-demo

查看

 <form action="" method="POST" enctype="multipart/form-data" >
Select File To Upload:<br />
<input type="file" name="userfile" multiple="multiple" />
<input type="submit" name="submit" value="Upload" class="btn btn-success" />
</form>

{if isset($uploaded_file)}
{foreach from=$uploaded_file key=name item=value}
{$name} : {$value}
<br />
{/foreach}
{/if}

控制器

/**
* the demo for file upload tutorial on codesamplez.com
* @return view
*/
public function file_upload_demo()
{
try
{
if($this->input->post("submit")){
$this->load->library("app/uploader");
$this->uploader->do_upload();
}
return $this->view();
}
catch(Exception $err)
{
log_message("error",$err->getMessage());
return show_error($err->getMessage());
}
}

组件

/**
* Description of uploader
*
* @author Rana
*/
class Uploader {
var $config;
public function __construct() {
$this->ci =& get_instance();
$this->config = array(
'upload_path' => dirname($_SERVER["SCRIPT_FILENAME"])."/files/",
'upload_url' => base_url()."files/",
'allowed_types' => "gif|jpg|png|jpeg|pdf|doc|xml",
'overwrite' => TRUE,
'max_size' => "1000KB",
'max_height' => "768",
'max_width' => "1024"
);
}
public function do_upload(){
$this->remove_dir($this->config["upload_path"], false);
$this->ci->load->library('upload', $this->config);
if($this->ci->upload->do_upload())
{
$this->ci->data['status']->message = "File Uploaded Successfully";
$this->ci->data['status']->success = TRUE;
$this->ci->data["uploaded_file"] = $this->ci->upload->data();
}
else
{
$this->ci->data['status']->message = $this->ci->upload->display_errors();
$this->ci->data['status']->success = FALSE;
}
}
function remove_dir($dir, $DeleteMe) {
if(!$dh = @opendir($dir)) return;
while (false !== ($obj = readdir($dh))) {
if($obj=='.' || $obj=='..') continue;
if (!@unlink($dir.'/'.$obj)) $this->remove_dir($dir.'/'.$obj, true);
}

closedir($dh);
if ($DeleteMe){
@rmdir($dir);
}
}
}

答案 2 :(得分:0)

{1,2}