Php 使用codeigniter上载PDF文件

Php 使用codeigniter上载PDF文件,php,codeigniter,Php,Codeigniter,嗨,我是stackoverflow和codeigniter的新手,所以如果我在这个问题上违反了任何规则或礼节,我深表歉意(我搜索了相关问题,没有看到任何与我的问题直接相关的内容) 我正在尝试上传一个PDF文件,我正在使用以下代码(codeigniter版本1.7.2): 功能测试(){ $this->load->library('upload'); $config['upload_path']='./资产/证书/'; $config['allowed_types']='pdf'; $config

嗨,我是stackoverflow和codeigniter的新手,所以如果我在这个问题上违反了任何规则或礼节,我深表歉意(我搜索了相关问题,没有看到任何与我的问题直接相关的内容)

我正在尝试上传一个PDF文件,我正在使用以下代码(codeigniter版本1.7.2):

功能测试(){
$this->load->library('upload');
$config['upload_path']='./资产/证书/';
$config['allowed_types']='pdf';
$config['max_size']='1000000';
$config['file_name']=“测试”;
$this->upload->initialize($config);
$certificateflag=$this->upload->do_upload(“证书”);
如果($this->upload->do_upload(“证书”))
错误报告(E_全部);
否则{
echo“”;Print_r($this->upload->data());echo“”;
}
}
我没有收到任何错误,文件似乎已上载,但它没有出现在目录中,而且我在服务器上的任何位置都找不到它。上面的输出给了我文件应该在哪里的路径,但它不在那里

我在另一部分中使用了几乎完全相同的代码块来处理我上传到同一目录中的jpg文件,效果很好


非常感谢您提供的任何帮助/想法。

首先,当我看到您两次调用方法do\u upload时,我认为您需要删除其中一个。在do_upload调用之后,尝试调用$this->upload->display_errors()方法,它可能会给您带来一些错误。重新检查字段名,它应该是“certificate”,并检查“/assets/certificates/”的chmod,它应该是777。
希望这能有所帮助。

首先,当我看到您两次调用方法do\u upload时,我认为您需要删除其中一个。在do_upload调用之后,尝试调用$this->upload->display_errors()方法,它可能会给您带来一些错误。重新检查字段名,它应该是“certificate”,并检查“/assets/certificates/”的chmod,它应该是777。
希望这能有所帮助。

对CI一无所知。无论如何,您应该将错误报告()放在->执行上传()之前。如果这没有显示任何内容,请将打印语句放入->上载->do\u上载。或者在初始化并取消设置CI之前,后退一步并打印\u r($\u文件)。“allowed_types”看起来很古怪,可能在vanilla app/oct MIME类型或basename文件上失败。对CI没有任何线索。无论如何,您应该将错误报告()放在->执行上传()之前。如果这没有显示任何内容,请将打印语句放入->上载->do\u上载。或者在初始化并取消设置CI之前,后退一步并打印\u r($\u文件)。“allowed_types”(允许的_类型)似乎很古怪,可能在vanilla app/oct MIME类型或basename文件上失败。哎呀,这是我在这里粘贴代码时的一个错误,但你的建议同样起到了帮助作用,我在调用$this->upload->display_errors()时添加了这个选项,并得到了一些有意义的信息,原来该文件被拒绝是因为它认为它的文件类型不正确,我对此进行了进一步搜索,发现这是codeigniter中的一个错误,我不得不编辑config to array下的mimes.php文件('application/pdf','application/x-pdf','application/octet stream'),感谢您的帮助!哦,当我在这里粘贴代码时,这是我的一个错误,但你的建议同样起到了帮助作用,我在调用$this->upload->display_errors()时添加了一些有意义的信息,结果发现该文件被拒绝,因为它认为它的文件类型不正确,我对此进行了更多搜索,发现这是codeigniter中的一个bug,我不得不编辑config to array(“application/pdf”、“application/x-pdf”、“application/octet stream”)下的mimes.php文件,感谢您的帮助!
    function test(){
        $this->load->library('upload');   
        $config['upload_path'] = './assets/certificates/';
        $config['allowed_types'] = 'pdf';
        $config['max_size']    = '1000000';
        $config['file_name'] = "test";

        $this->upload->initialize($config);
        $certificateflag = $this->upload->do_upload("certificate");       
        if ($this->upload->do_upload("certificate"))
            error_reporting(E_ALL);
        else{
            echo "<pre>"; Print_r($this->upload->data()); echo "</pre>";
        }
}