Php mysql字段上缺少上载图像和文件扩展名
我有一段代码,可以执行多图像上传并重命名它 它可以工作,文件重命名正确,但我不明白为什么在mysql数据库中我没有文件扩展名,只有名称 例如: 文件名(文件夹):abcdefg.jpg pd_图像(mysql字段):abcdefg $resultname对于这两种情况都是相同的Php mysql字段上缺少上载图像和文件扩展名,php,image-uploading,Php,Image Uploading,我有一段代码,可以执行多图像上传并重命名它 它可以工作,文件重命名正确,但我不明白为什么在mysql数据库中我没有文件扩展名,只有名称 例如: 文件名(文件夹):abcdefg.jpg pd_图像(mysql字段):abcdefg $resultname对于这两种情况都是相同的 $mainame = $handle->file_dst_name; $db_name = str_replace(" ","_",$mainame); $image = md5(rand()
$mainame = $handle->file_dst_name;
$db_name = str_replace(" ","_",$mainame);
$image = md5(rand() * time()) . ".$db_name";
$parts = explode(".",$image);
$extension = end($parts);
$resultname = str_replace("." . $extension,"",$image);
$handle->file_new_name_body = $resultname;
$handle->image_resize = true;
$handle->image_ratio_crop = true;
$handle->image_x = 800;
$handle->image_y = 600;
$handle->Process($dir_dest);
// we check if everything went OK
if ($handle->processed) {
header("Location: index.php"); //echo 'image resized';
$handle->clean();
$query_img="INSERT into tbl_images (pd_id, file_name, pd_image) VALUES('$pd_id','$mainame','$resultname')";
$result2 = dbQuery($query_img);
我正在使用类“class.upload.php”检查这一行,您正在用“”替换扩展名 将此线路更换为
$resultname = $image.'.'.$extension;
您正在将变量$db_name指定为字符串。将变量连接到另一个字符串的正确方法是
$image = md5(rand() * time()).$db_name;
看起来您自己正在删除(替换)扩展名:
$resultname=str_replace(“.$extension,”,$image)如果您有任何错误,只需调试它们。添加大量echo和var_转储,直到看到扩展消失的地方。不要只是问我正确,但是双引号字符串文字是多余的,它不会引起当前的问题,因为php替换了变量。编辑:由于显然在randon值和“name”部分之间要插入一个点,所以使用双引号字符串可能只是意见问题。问题不在这里。在任何情况下,数据库中仍然缺少扩展。如何可能定期重命名文件,但不在数据库中重命名?变量相同:$resultname
$image = md5(rand() * time()).$db_name;