我开发了一个将图像上传到数据库的代码。
图像保存在文件夹(img)中,db中是图像的路径
我有一个函数为每个图像生成一个随机名称,这就是我的问题出现的地方,图像被发送到目标文件夹但只有名称,没有图像的扩展名(jpeg,png ...)并且无法显示...
if(count($error) == 0){
preg_match( "/\.(gif|bmp| png| jpg|jpeg){1}$/i", $imagem["name"], $ext);
$nameImg = md5(uniqid(time () ) ).".".$ext[1];
$pathImg ="img/".$nameImg;
move_uploaded_file($img ["tmp_name"], $pathImg);
$sql = mysql_query("INSERT INTO user VALUES ( ' ', ' ".$name. " ', ' ".$email. "', ' ".$nameImg. "') ");
我做错了什么?
感谢
答案 0 :(得分:0)
您只需使用以下内容检索文件扩展名,然后将其添加到最后。
$ext = pathinfo($imagem['name'], PATHINFO_EXTENSION);
$pathImg ="img/".$nameImg.".".$ext;
答案 1 :(得分:0)
在png之前和jpg之前的ER中有一个空格。这可能是错误。您也可以尝试在移动文件之前检查是否有扩展名。 附: $ imagem包含什么?
答案 2 :(得分:0)
preg_match
模式有问题。我删除了空格和{1}
,这些对应只有1个符号。
preg_match( "/\.(gif|bmp|png|jpg|jpeg)$/i", $imagem["name"], $ext);