【问题标题】:Codeigniter + wamp "The upload path does not appear to be valid"Codeigniter + wamp“上传路径似乎无效”
【发布时间】:2015-11-18 18:05:23
【问题描述】:

我已经尝试了所有选项并检查了有关此案的所有问题,所以现在我要向你们求助。我上传pdf文件的上传路径有问题。

我的看法:

<?php echo form_open_multipart('admin321/insert_catalog'); ?>
    *title: <input type="text" name="title" />
    sub_title: <input type="text" name="sub_title" />
    Facebook url: <input type="text" name="facebookUrl" />
    Twitter url: <input type="text" name="twitterUrl" />
    Google +: <input type="text" name="googlePlus" />
    description: <input type="text" name="description" />
    pdf: </span> <input type="file" name="pdf" />
    categories:
    //Here i fetch some categories object and parse them in select options
    <select name="categories" >
        <?php foreach ($cat as $r) {
                echo '<option value=' . $r->id_category . ' >' . $r->category . '</option>';
        } ?>
    </select>
    <input type="submit" value="Add" class="submit">
<?php echo form_close(); ?>

我在控制器中的 insert_catalog 函数

public function insert_catalog(){
    $title = $this->input->post('title');
    $sub_title = $this->input->post('sub_title');
    $facebookUrl = $this->input->post('facebookUrl');
    $twitterUrl = $this->input->post('twitterUrl');
    $googlePlus = $this->input->post('googlePlus');
    $description = $this->input->post('description');
    $category = $this->input->post('categories');

    $config['upload_path'] = '/assets/pdf/';
    $config['allowed_types'] = 'pdf';
    $this->load->library('upload', $config);
    $this->upload->set_xss_clean(TRUE);

    if (!$this->upload->do_upload()){
        var_dump($this->upload->display_errors());
        die();
    }else{
        $pdf = array('upload_data' => $this->upload->data());
        var_dump($title,$sub_title,$facebookUrl,$twitterUrl,$googlePlus,$description,$category);
        var_dump($pdf);
        die();
    }
}

我的文件夹结构是基本的 codeingiter 3.0.1,在我的网页根目录中添加了 assets 文件夹

- application
- assets
-- pdf
-- css
-- js
-- ...
- system

到目前为止我已经尝试过:

$config['upload_path'] = './assets/pdf/';
$config['upload_path'] = '/assets/pdf';
$config['upload_path'] = 'assets/pdf';
$config['upload_path'] = 'assets/pdf/';
$config['upload_path'] = 'e:/wamp/www/mypage';
$config['upload_path'] = 'e:\wamp\www\mypage';
$config['upload_path'] = FCPATH."/asset/pdf";
$config['upload_path'] = "../asset/pdf";
$config['upload_path'] = "../../asset/pdf";    
$config['upload_path'] = $_SERVER['DOCUMENT_ROOT']."/assets/pdf";
$config['upload_path'] = 'E:\\wamp\\www\\hot/asset/pdf';
$config['upload_path'] = FCPATH . 'assets/pdf/';

基本上我已经尝试了所有组合,但没有任何效果,所以我相信问题一定出在其他地方。

我的 .htaac​​ess 文件

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

我也有虚拟主机

<VirtualHost *:80>
    ServerAdmin info@hot.si
    DocumentRoot "E:/wamp/www/mypage"
    ServerName www.mypage.si
    ServerAlias hot.si *.mypage.si
    ErrorLog "E:/wamp/www/mypage/application/logs/mypage.log"
    CustomLog "E:/wamp/www/mypage/application/logs/mypage.log" common
    <Directory E:/wamp/www/mypage>
        Order Deny,Allow   
        Allow from all 
    </Directory>
</VirtualHost>

我在 Windows 10 上使用 WAMP 服务器。

我希望有人能指出我正确的方向。如果您需要任何其他信息,请告诉我

提前谢谢你!

【问题讨论】:

  • 不要只使用./ 使用../ 删除一个目录
  • 我已将两个 cmets 添加为“已经”尝试过的配置。他们都没有工作。 Apache 上的一些配置可能与 Windows 10 安全性相结合?
  • 试试这个E:\\wamp\\www\\mypage/asset/pdf
  • FCPATH 已经以斜线结尾。试试FCPATH . 'assets/pdf/
  • 感谢您的尝试,但这并没有帮助。看起来这是我假设的错误配置....

标签: php apache codeigniter wamp


【解决方案1】:

您应该在“do_upload”中指定表单字段“file”的名称,否则codeigniter将采用默认值“userfile”。

在您的情况下,将 $this-&gt;upload-&gt;do_upload() 更改为 $this-&gt;upload-&gt;do_upload('pdf')

【讨论】:

    猜你喜欢
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 2011-12-28
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多