Heim >Backend-Entwicklung >PHP-Problem >So benennen Sie ein Bild nach dem Hochladen mit PHP um

So benennen Sie ein Bild nach dem Hochladen mit PHP um

PHPz
PHPzOriginal
2023-04-04 09:11:19693Durchsuche

Das Hochladen von Bildern in PHP ist eine häufige Aufgabe. Allerdings entsprechen die Namen der nach dem Hochladen gespeicherten Bilder möglicherweise nicht unseren Wünschen, sie sind möglicherweise nicht intuitiv oder beschreibend genug. In vielen Fällen möchten wir hochgeladene Bilder umbenennen, um den Bildinhalt besser zu beschreiben und die Verwaltung zu erleichtern. Im Folgenden stellen wir Ihnen vor, wie Sie mit PHP Bilder nach dem Hochladen umbenennen.

Zuerst müssen wir die Grundlagen des Hochladens verstehen. PHP bietet viele Funktionen und Optionen im Zusammenhang mit dem Datei-Upload, um uns bei der Durchführung dieser Aufgabe zu erleichtern. Die einfachste davon besteht darin, die superglobale Variable $_FILES zu verwenden, um die hochgeladenen Dateiinformationen abzurufen. $_FILES enthält eine Reihe von Informationen, wie Dateiname, Dateigröße, Dateityp usw. Nach dem Hochladen gespeicherte Dateien speichert PHP vorübergehend in einem temporären Ordner auf dem Server. Der Pfad dieses temporären Ordners kann mit $_FILES['userfile']['tmp_name'] abgerufen werden. Als nächstes müssen wir die hochgeladene Datei an den Speicherort verschieben, an dem wir sie speichern möchten, was über die Funktion move_uploaded_file() erreicht werden kann. Der Code lautet wie folgt: $_FILES 超全局变量来获取上传的文件信息。$_FILES 包含了一系列信息,如文件名、文件大小以及文件类型等。对于上传后存储的文件,PHP 将其临时保存在服务器上的临时文件夹中,这个临时文件夹的路径可以使用 $_FILES['userfile']['tmp_name'] 获取。接下来,我们需要将上传的文件移动到我们希望保存的位置,这可以通过 move_uploaded_file() 函数实现。代码如下:

<?php
$target_dir = "uploads/"; // 上传文件保存目录
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上传后的文件名
$uploadOk = 1; // 上传状态标识

// 检查文件是否为真正的图片
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "文件是一个真正的图片 - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "文件不是一个真正的图片。";
        $uploadOk = 0;
    }
}

// 检查文件是否已经存在
if (file_exists($target_file)) {
    echo "文件已经存在。";
    $uploadOk = 0;
}

// 检查文件大小限制
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "文件太大,请上传小于 500KB 的文件。";
    $uploadOk = 0;
}

// 允许上传的图片格式
$allowedTypes = array("jpg", "jpeg", "gif", "png");
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
if(!in_array($imageFileType, $allowedTypes)) {
    echo "只允许上传 JPG, JPEG, GIF 或 PNG 文件格式。";
    $uploadOk = 0;
}

// 检查 $uploadOk 标识
if ($uploadOk == 0) {
    echo "文件没有被上传。";
// 如果通过所有检查,则将文件移动到目标目录
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "文件 ". basename( $_FILES["fileToUpload"]["name"]). " 文件上传成功。";
    } else {
        echo "发生了一个错误,文件没有被上传。";
    }
}
?>

在上面的代码中,我们设置了 $target_dir 变量来指定上传文件保存的目录,同时,我们使用 basename() 函数获取上传文件的文件名,并添加到 $target_dir 后面,以形成上传后的文件完整路径。接下来,我们对上传的文件进行一系列检查,包括文件类型、文件大小等等。最后,如果文件通过了所有的检查,则通过 move_uploaded_file() 函数将文件从临时文件夹移动到目标目录中。

现在,我们需要将上传后的文件名改为我们希望的名称。下面是一个简单的示例,它将上传后的文件名改为当前时间戳。

<?php
$newFileName = time() . &#39;.&#39; . $imageFileType;
$destination = $target_dir . $newFileName;
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $destination))
{
    echo "文件上传成功,新的文件名是: " . $newFileName ;
}
else
{
    echo "文件上传失败!" ;
}
?>

在上面的代码中,我们使用 time() 函数来生成当前时间戳并将其与传入的文件扩展名拼接成新的文件名。然后,我们将新文件名与目标目录一起使用 move_uploaded_file() 函数进行移动。

除了使用时间戳,还可以通过其他方式来生成新的文件名,如使用上传用户的用户名或原始文件名等。这只需要使用一些 PHP 字符串和文件处理函数即可实现。

总结

在 PHP 中,我们可以使用 move_uploaded_file()rrreee

Im obigen Code legen wir die Variable $target_dir fest, um das Verzeichnis anzugeben, in dem die hochgeladene Datei gespeichert wird. Gleichzeitig verwenden wir den basename ()-Funktion, um den Dateinamen der Datei zu erhalten und an $target_dir anzuhängen, um den vollständigen Pfad der hochgeladenen Datei zu bilden. Als Nächstes führen wir eine Reihe von Überprüfungen der hochgeladenen Datei durch, einschließlich Dateityp, Dateigröße usw. Wenn die Datei schließlich alle Prüfungen besteht, wird sie über die Funktion move_uploaded_file() aus dem temporären Ordner in das Zielverzeichnis verschoben. 🎜🎜Jetzt müssen wir den Namen der hochgeladenen Datei in den gewünschten Namen ändern. Hier ist ein einfaches Beispiel, das den Namen der hochgeladenen Datei in den aktuellen Zeitstempel ändert. 🎜rrreee🎜Im obigen Code verwenden wir die Funktion time(), um den aktuellen Zeitstempel zu generieren und ihn mit der übergebenen Dateierweiterung zu einem neuen Dateinamen zu verketten. Anschließend verschieben wir den neuen Dateinamen mit der Funktion move_uploaded_file() in das Zielverzeichnis. 🎜🎜Neben der Verwendung von Zeitstempeln können Sie neue Dateinamen auch auf andere Weise generieren, z. B. indem Sie den Benutzernamen des hochladenden Benutzers oder den ursprünglichen Dateinamen verwenden. Dies wird mit nur einigen PHP-Funktionen zur Zeichenfolgen- und Dateiverarbeitung erreicht. 🎜🎜Zusammenfassung🎜🎜In PHP können wir die Funktion move_uploaded_file() verwenden, um die hochgeladene Datei aus dem temporären Ordner in das Zielverzeichnis zu verschieben, und verschiedene Methoden verwenden, um den Namen der hochgeladenen Datei in „Der Name“ zu ändern wir wollen. Dies ist eine sehr wichtige Aufgabe für Anwendungen, die hochgeladene Dateien verwalten und identifizieren müssen. 🎜

Das obige ist der detaillierte Inhalt vonSo benennen Sie ein Bild nach dem Hochladen mit PHP um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn