使用php将图像上传到mysql会引发两个错误

时间:2016-03-08 13:18:57

标签: php mysql phpmyadmin

我想将图像保存到数据库中,我尝试了这段代码,但我收到了2个错误:

  

未定义索引:upload.php第27行*中的照片

     

警告:fopen():在upload.php第27行*

中,文件名不能为空

这是第27行的代码:$imgfp = fopen($_FILES['photo']['tmp_name'], 'rb');

我发现图像已插入数据库中:

enter image description here

当我点击插入的Blob时,下载的文件 .bin 已下载......

为什么我会收到这2个错误?我该怎么做才能避免这些错误?并正确插入图像?  并准备好用于其他用途,例如从Android应用程序加载图像?

form.html

<p>
    Cette page vous permet d'ajouter une photo à une base de donnés mysql.
</p>

<form action="upload.php" method="post" enctype="multipart/form-data">
<p>
    <input type="file" name="photo" />
    <input type="submit" value="Submit" name="submit"/>
</p>
</form>

upload.php的

<?php

if(!$_SERVER['REQUEST_METHOD']=='POST')
{
    echo '<p>Please Select Image to Upload</p>';
}
else
{
    try {
        upload();

        echo '<p>Image Uploaded into MySQL Database as LONGBLOB Using PHP </p>';
    }
    catch(Exception $e)
    {
        echo '<h4>'.$e->getMessage().'</h4>';
    }
}

function upload(){
    /*** check if a file was uploaded ***/


    /*** assign our variables ***/
    $imgfp = fopen($_FILES['photo']['tmp_name'], 'rb');

    /*** connect to db ***/

    $dbh = new PDO("mysql:host=localhost;dbname=othmane", 'root', '');

    /*** set the error mode ***/
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    /*** our sql query ***/
    $stmt = $dbh->prepare("INSERT INTO images (image) VALUES (?)");

    /*** bind the params ***/
    $stmt->bindParam(1, $imgfp, PDO::PARAM_LOB);

    /*** execute the query ***/
    $stmt->execute();

}
?>

0 个答案:

没有答案