文件名不保存到数据库

时间:2014-04-03 06:39:55

标签: codeigniter upload

我有一个用于插入新文章的表单。我的问题是将图片的完整路径保存到数据库。图片已成功上传到文件夹,我可以获得没有名称和扩展名的图片路径。我的代码有什么问题?
谢谢。
我使用此功能上传路径:

$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'];

它没有显示任何内容。

2 个答案:

答案 0 :(得分:0)

我可以在你的代码中看到一个错误,它是:

$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

因此,在连接时应使用斜杠分隔目录名和文件名:

$upload_path = $path .'/'. $data['upload_data']['file_name'];

另外,您可以使用:

$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"
)

答案 1 :(得分:0)

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

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

现在效果很好。