我想将图像保存到数据库中,我尝试了这段代码,但我收到了2个错误:
未定义索引:upload.php第27行*中的照片
警告:fopen():在upload.php第27行*
中,文件名不能为空
这是第27行的代码:$imgfp = fopen($_FILES['photo']['tmp_name'], 'rb');
我发现图像已插入数据库中:
当我点击插入的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();
}
?>