在PHP中提取文件扩展名(图像上传脚本)

0 php upload image file

谁能告诉我这有什么问题?使用时间戳重命名该文件,但不会解压缩扩展名并将其放在新名称中.

    $filenameext = pathinfo($filename, PATHINFO_EXTENSION);

    $today = getdate();
    $uniqueStr = $today[year];
    $uniqueStr .= $today[mon];
    $uniqueStr .= $today[wday];
    $uniqueStr .= $today[mday];
    $uniqueStr .= $today[hours];
    $uniqueStr .= $today[minutes];
    $uniqueStr .= $today[seconds];

    $filename = $uniqueStr.".".$filenameext;
Run Code Online (Sandbox Code Playgroud)

完整代码:

<?php
$folder = 'images/';
$orig_w = 500;

if( isset($_POST['submit']) )
{
    $imageFile = $_FILES['image']['tmp_name'];
    $filenameext = pathinfo($filename, PATHINFO_EXTENSION);

    $today = getdate();
    $uniqueStr = $today[year];
    $uniqueStr .= $today[mon];
    $uniqueStr .= $today[wday];
    $uniqueStr .= $today[mday];
    $uniqueStr .= $today[hours];
    $uniqueStr .= $today[minutes];
    $uniqueStr .= $today[seconds];
    $filename = $uniqueStr.".".$filenameext;

    list($width, $height) = getimagesize($imageFile);

    $src = imagecreatefromjpeg($imageFile);
    $orig_h = ($height/$width)* $orig_w;

    $tmp = imagecreatetruecolor($orig_w, $orig_h);
    imagecopyresampled($tmp, $src, 0,0,0,0,$orig_w,$orig_h,$width,$height);
    imagejpeg($tmp, $folder.$filename,100);

    imagedestroy($tmp);
    imagedestroy($src);

    $filename = urlencode($filename);
    header("Location: crop.php?filename=$filename&height=$orig_h");
}
Run Code Online (Sandbox Code Playgroud)

?>

Art*_*kii 5

这应该工作正常 - 你可以在pathinfo()之前打印你的$ filename吗?

发布代码后编辑:所以让我直截了当

$imageFile = $_FILES['image']['tmp_name'];
$filenameext = pathinfo($filename, PATHINFO_EXTENSION);
Run Code Online (Sandbox Code Playgroud)

你读入$ imageFile但解析一个未初始化的变量$ filename?

  • 您正在访问错误的变量名称,您需要访问$ imageFile,而不是$ filename. (3认同)
  • 好吧,如果你的名字是丹,但我叫鲍勃,你不会说"嘿,那就是我".同样,当你说pathinfo($ filename)时,$ filename不存在.你需要调用pathinfo($ imageFile).只需要多注意一些小事情,阅读编程基础知识,你应该没问题. (2认同)