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