0

请帮我。这是我在 php Codeigniter 中的第一个项目。其实我是一名Java开发人员。

我想将两个图像路径上传到我的表格中,并将其图像上传到我的根文件夹中,例如上传我在同一个表格中有许多字段,而不是图像。我可以从我的表单中添加/编辑这些字段。(我成功地使用 codeigniter 实现了)

但目前我在图片上传方面面临问题。我不知道如何使用 codeigniter 上传图片。两天后我尝试自己做,但我无法解决我的问题

错误:我没有看到任何错误。只是它将 0 值作为图像路径插入到我的数据库表中。 我认为我尝试上传图片的方式不正确。

myviews.php

 <? echo form_open_multipart('Booksetups/book'); ?>


                 <input type="file" name="img1" /> 
                 <input type="file" name="img2" />
               <?php          
                                               <br/>
                          <? echo  form_submit($submitbtn);   echo form_reset($resetbtn); ?>  
                 <? echo form_close(); ?>  
4

3 回答 3

2

首先要记住的是 CI 不会添加$_FILES到输入对象中。您将需要访问诸如此类的内容$_FILES['img1']。所以这些:

'img1'=>$this->input->post('img1'),//image path is not inserting But all other fields are inserting into db 
'img2'=>$this->input->post('img2'),//image path is not inserting

应该是这样的:

'img1'=>$_FILES['img1']['name'],//image path is not inserting But all other fields are inserting into db 
'img2'=>$_FILES['img2']['name'],//image path is not inserting

取决于您希望存储在数据库中的内容。您可以通过上传类重命名文件等。我建议阅读这些文档。

其次,您似乎没有调用实际的上传方法:

$this->upload->do_upload()

不知道你是否需要这个但是......如果你想要多个配置,如果你希望它们有不同的路径,你必须重新定义多个文件的配置......

$config['upload_path'] = 'uploads/'; 
$config['allowed_types'] = 'gif|jpg|jpeg|png'; 
$config['max_size'] = '1000'; 
$config['max_width'] = '1920'; 
$config['max_height'] = '1280';  
$this->load->library('upload', $config);
$this->upload->do_upload("img1");

$config['upload_path'] = 'some_other_dir/'; 
$config['allowed_types'] = 'gif|jpg|jpeg|png'; 
$config['max_size'] = '1000'; 
$config['max_width'] = '1920'; 
$config['max_height'] = '1280';  
$this->upload->initialize($config);
$this->upload->do_upload("img2");

如果您不希望它们具有不同的路径,则可以像在示例中那样加载库并在do_upload()不传递参数的情况下调用。

如果我错过了重点,或者您需要更多信息,请告诉我,我可能会更新。

于 2013-01-16T19:41:42.470 回答
0

问题是您在服务器端使用了 html。PHP 不知道 HTML,而是 php。客户端或浏览器知道 HTML。

<input type="file" name="img1" /> 
<input type="file" name="img2" />

使用合适的 php 方法生成 html。

第二件事,您的文件上传参数与codeigniter userguide不同

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

错误的文件路径可能会导致您的其他问题

于 2013-01-17T04:42:34.937 回答
-1

看来您没有初始化上传类库:

$this->upload->initialize($config);

你还加载库:

$this->load->library('upload');
于 2013-01-16T19:14:05.790 回答