我试图在转换后将输入文件重命名为。jpg,但由于某种原因,当我真正寻找文件。jpg
时,我得到了一个文件。png.jpg下面是我的代码:$source = $path . $_POST['username']. "-" . $_FILES['t1']['name'];
$destination = $path . $_POST['username']. "-" . basename($_FILES['t1']['name']) . ".jpg";
使用 pathinfo () :
$source = $path . $_POST['username']. "-" . $_FILES['t1']['name'];
$path_parts = pathinfo( $_FILES['t1']['name'] );
$destination = $path . $_POST['username']. "-" . $path_parts['filename'] . ".jpg";
假设变量$filename
包含您的图像名称,扩展名为png。
为了将扩展名更改为jpg,只需通过以下函数运行它:
function replace_extension($filename) {
return preg_replace('/'..+$/', '.' . '.jpg', $filename);
}
basename()
函数包括原始文件扩展名
使用pathinfo()
函数返回关于文件的信息数组,并使用不带扩展名
$destination = $path . $_POST['username']. "-" . basename($_FILES['t1']['name']) . ".jpg";
$info = pathinfo($_FILES['t1']['name']);
$destination = $path . $_POST['username']. "-" . $info['filename'] . ".jpg";
您可以使用basename的第二个参数来删除后缀
$filename = basename($_FILES['t1']['name'], ".png");
或者你可以做一些字符串操作
$filename = substr($_FILES['t1']['name],0, strrpos($_FILES['t1']['name'], ".") -1);
basename
返回整个文件名,包括文件类型后缀(即。"jpg")。如果想去掉后缀,可以用第二个参数basename($_FILES['t1']['name'], 'png')
调用该函数。
但是如果你想把png转换成jpg,你不能仅仅改变文件名,你必须使用特殊的函数来转换文件,参见"使用PHP将png转换成jpg ?"