Codeigniter 文件名不保存到数据库

Codeigniter 文件名不保存到数据库,codeigniter,upload,Codeigniter,Upload,我有一个用于插入新文章的表单。我的问题是将图片的完整路径保存到数据库中。图片已成功上载到文件夹中,我可以获得图片的路径,但不包括其名称和扩展名。您能告诉我我的代码有什么问题吗? 谢谢。 我使用此功能选择上载路径: $path=dirname($_SERVER['SCRIPT_FILENAME']).'/upload'; $data=array('upload_data'=>$this->upload->data()); $upload_path=$path.$data['upl

我有一个用于插入新文章的表单。我的问题是将图片的完整路径保存到数据库中。图片已成功上载到文件夹中,我可以获得图片的路径,但不包括其名称和扩展名。您能告诉我我的代码有什么问题吗?
谢谢。
我使用此功能选择上载路径:

$path=dirname($_SERVER['SCRIPT_FILENAME']).'/upload';
$data=array('upload_data'=>$this->upload->data());
$upload_path=$path.$data['upload_data']['file_name'];
当我回音时

echo $data['upload_data']['file_name'];

它没有显示任何内容。

我可以看到您的代码中有一个错误,那就是:

$path=dirname($_SERVER['SCRIPT_FILENAME']).'/upload'; // <-- No ending slash
$data=array('upload_data'=>$this->upload->data());
$upload_path=$path.$data['upload_data']['file_name']; // <-- No slash added here
此外,您可以只使用:

$path = '...';
$data = $this->upload->data();
$upload_path = $path . '/' . $data['file_name'];
确保
$data=$this->upload->data();var_dump($data)
包含如下内容:

Array
(
    [file_name]    => mypic.jpg
    [file_type]    => image/jpeg
    [file_path]    => /path/to/your/upload/
    [full_path]    => /path/to/your/upload/jpg.jpg
    [raw_name]     => mypic
    [orig_name]    => mypic.jpg
    [client_name]  => mypic.jpg
    [file_ext]     => .jpg
    [file_size]    => 22.2
    [is_image]     => 1
    [image_width]  => 800
    [image_height] => 600
    [image_type]   => jpeg
    [image_size_str] => width="800" height="200"
)

最后我用这种方式将上传图像的完整路径保存到数据库:

$path=dirname($_SERVER['SCRIPT_FILENAME'])."/upload/".$_FILES['pic']['name'];   

现在它运行良好。

您是如何在数据库中保存路径的,是否保存了路径?
$upload\u path
中有什么?是的,我将
$upload\u path
保存在数据库中。我指的是完整路径,然后查询结果会给出什么?另外,通过
var\u dump($data)
检查
$data
,确保它包含所有上载信息?它只是文件夹的路径,没有文件名。我尝试了这一点,但当我回显
$data时['file\u name']
显示了一个未定义索引的错误:file\u name。问题在于我尝试回显的file\u name
$data['upload\u data']['file\u name']
var\u dump()中没有显示任何内容。
除了
[文件路径]
[完整路径]
之外,所有索引都包含0。我不知道怎么了
$path=dirname($_SERVER['SCRIPT_FILENAME'])."/upload/".$_FILES['pic']['name'];