-1

我开发了一个将图像上传到数据库的代码。

图像保存在文件夹 (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. "') ");

我究竟做错了什么?

谢谢

4

3 回答 3

0

您可以简单地使用以下内容来检索文件扩展名,然后将其添加到末尾。

$ext = pathinfo($imagem['name'], PATHINFO_EXTENSION);

$pathImg ="img/".$nameImg.".".$ext;
于 2013-06-28T13:18:48.003 回答
0

在 ER 中,在 png 和 jpg 之前有一个空格。这可能是错误。您也可以尝试在移动文件之前检查是否有扩展名。PS $imagem 包含什么?

于 2013-06-28T13:19:11.823 回答
0

模式有问题preg_match。我删除了空格,{1}它只对应于 1 个符号。

preg_match( "/\.(gif|bmp|png|jpg|jpeg)$/i", $imagem["name"], $ext);
于 2013-06-28T13:19:39.553 回答