将图像上载到文件夹并获取其路径名称

时间:2012-05-21 13:59:15

标签: php mysql forms file-upload insert

我有一个带有文件输入字段的表单:

<tr align="left">
    <td>Image :</td>
    <td align="left">
        <input type="file" name="ImageFile" size="18">
    </td>
</tr>

然后我在提交时使用此图像文件执行操作:

$image_tmpname = $_FILES['ImageFile']['name'];
$imgdir = "blogImages/";
$imgname = $imgdir.$image_tmpname;

$blogs = new Blogs();

move_uploaded_file($_FILES['ImageFile']['tmp_name'], $imgname);
    $insert = $blogs->insertBlog($heading, $article, $date, $imgname);

我要保存图像的目录名为blogImages,与上述目录位于同一目录中。

您可能会注意到上面我在类insertBlog insertBlog`中调用了一个名为Blogs'. Insert blog takes all the info and inputs the data to a mysql table. The code for的函数:

function insertBlog($heading, $article, $date, $imgname){
        $query = "INSERT INTO Blogs (BlogTitle, MainArticle, PostDate, Image) VALUES ('$heading', '$article', '$date', '$imgname')";        
        $oDatabase = new database;
        $connection = $oDatabase->Connect();
        if (!mysql_select_db($oDatabase->Name(), $connection))
            $oDatabase->ShowError("Blogs.insertBlog");

        if (!(@ mysql_query ($query, $connection)))
            $oDatabase->ShowError("Blogs.insertBlog");

        return (mysql_insert_id());
    }

当用户填写表单时,除了图像信息之外,它还会将所有其他信息正确地存储在MySQL表中。此外,它不会将实际图像存储在blogImages文件夹中。那么如何让这个脚本将图像上传到blogImages文件夹并将其路径存储在mysql表中。目前它不会将图像存储在数据库中,只将值blogImages/放在MySQL表的图像路径字段中。

1 个答案:

答案 0 :(得分:1)

要传输文件,您必须在HTML中指定multipart/form-data enctype

<form enctype="multipart/form-data" action="" method="POST">