Exemple d'analyse de la façon d'utiliser PHP pour implémenter la fonction de prévisualisation sans téléchargement

PHPz
Libérer: 2023-04-04 13:36:02
original
603 Les gens l'ont consulté

PHP est un langage de programmation côté serveur couramment utilisé, souvent utilisé pour le développement Web. Son avantage est qu'il est facile à apprendre et à utiliser, et qu'il est largement utilisé dans les projets commerciaux et open source. Pendant le processus de développement, le téléchargement de fichiers est indispensable car il constitue un moyen simple et efficace de télécharger des fichiers sur le serveur Web. Cependant, nous espérons parfois que les fichiers téléchargés par les utilisateurs ne seront pas affichés directement sur la page Web, mais devront être traités en arrière-plan avant d'être affichés. Alors, comment y parvenir ?

Dans cet article, je vais vous présenter comment utiliser PHP pour implémenter la fonction de prévisualisation sans téléchargement. Avant de commencer, assurez-vous de bien connaître les bases de PHP.

Étape 1 : Créer un formulaire HTML

Tout d'abord, nous devons créer un formulaire de téléchargement de fichiers sur la page HTML afin que les utilisateurs puissent télécharger des fichiers. Dans le formulaire, nous devons ajouter un élément d'entrée de type de fichier standard et un bouton de soumission. Le code est le suivant :

<html>
    <head>
        <title>文件上传示例</title>
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file">
            <br>
            <input type="submit" value="上传">
        </form>
    </body>
</html>
Copier après la connexion

Étape 2 : Téléchargez et traitez le fichier

Lorsque l'utilisateur clique sur le bouton de soumission, les données du formulaire seront être envoyé dans le fichier upload.php du serveur. Nous devons terminer la tâche de téléchargement et de traitement du fichier dans ce fichier.

Tout d'abord, nous devons vérifier si le fichier téléchargé existe et déterminer s'il y a eu des erreurs pendant le processus de téléchargement. Afin de réaliser cette fonction, nous pouvons utiliser la fonction intégrée PHP is_uploaded_file()move_uploaded_file(). Le code est le suivant :

<?php

if (isset($_FILES["file"]) && !empty($_FILES["file"]["name"])) {
    $file = $_FILES["file"];

    // 检查上传的文件是否是有效的文件
    if (!is_uploaded_file($file["tmp_name"])) {
        die("上传文件无效");
    }

    // 将上传的文件从临时目录移动到我们指定的目录
    if (!move_uploaded_file($file["tmp_name"], "./upload/" . $file["name"])) {
        die("无法移动文件");
    }

    // 在这里对上传的文件进行处理,例如调用ImageMagick库对图片进行处理
    // ......
} else {
    die("请选择要上传的文件");
}

?>
Copier après la connexion

Dans cet exemple, nous vérifions d'abord si le fichier téléchargé est valide. Si le fichier n'est pas valide, affichez "Le fichier téléchargé n'est pas valide" et quittez le programme. Si le fichier est valide, il est déplacé vers le répertoire que nous avons spécifié. Si une erreur se produit pendant le déplacement, le message "Impossible de déplacer le fichier" s'affiche et le programme se termine. Enfin, dans d'autres parties de ce script, nous pouvons faire quelque chose avec le fichier téléchargé.

Étape 3 : Ne revenez pas directement à l'aperçu

Dans le code ci-dessus, nous avons téléchargé et traité le fichier. Cependant, notre objectif n’est pas de renvoyer directement l’aperçu. Afin d'atteindre cet objectif, nous devons enregistrer l'URL du fichier téléchargé dans une base de données et générer une clé en même temps. Nous pouvons ensuite transmettre cette clé à l'utilisateur et lui dire de l'utiliser pour visualiser le fichier à l'avenir.

Supposons que nous ayons une base de données nommée "files" qui contient une colonne nommée "url" et une colonne nommée "key". Nous pouvons enregistrer l'URL du fichier téléchargé et la clé générée dans la base de données en utilisant le code suivant :

<?php

// 建立数据库连接
$host = "localhost";
$username = "root";
$password = "";
$database = "files";
$conn = mysqli_connect($host, $username, $password, $database);

// 检查连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}

if (isset($_FILES["file"]) && !empty($_FILES["file"]["name"])) {
    $file = $_FILES["file"];

    // 检查上传的文件是否是有效的文件
    if (!is_uploaded_file($file["tmp_name"])) {
        die("上传文件无效");
    }

    // 将上传的文件从临时目录移动到我们指定的目录
    if (!move_uploaded_file($file["tmp_name"], "./upload/" . $file["name"])) {
        die("无法移动文件");
    }

    // 在这里对上传的文件进行处理,例如调用ImageMagick库对图片进行处理
    // ......

    // 将上传文件的URL和生成的密钥存储到数据库中
    $url = "http://www.example.com/upload/" . $file["name"];
    $key = md5($url . time());
    $sql = "INSERT INTO files (url, `key`) VALUES (&#39;$url&#39;, &#39;$key&#39;)";

    if (mysqli_query($conn, $sql)) {
        echo "上传成功,密钥是 $key";
    } else {
        echo "上传失败,请重试";
    }
} else {
    die("请选择要上传的文件");
}

// 关闭数据库连接
mysqli_close($conn);

?>
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé la bibliothèque MySQLi pour nous connecter à la base de données. Nous établissons d’abord la connexion avant de télécharger le fichier et fermons la connexion après le téléchargement du fichier. Nous stockons ensuite l'URL du fichier téléchargé et la clé générée dans la base de données afin de pouvoir rechercher ultérieurement le fichier en fonction de la clé.

Étape 4 : Afficher le fichier

Maintenant que nous avons téléchargé le fichier et l'avons enregistré dans la base de données, nous pouvons trouver le fichier en fonction de la clé et l'afficher. Il suffit de créer une URL contenant le paramètre de chaîne de requête "key", puis de la lier à un lien ou un bouton de la page HTML. Lorsque l'utilisateur clique sur le lien ou le bouton, le système utilise cette clé pour rechercher le fichier dans la base de données et l'affiche dans une nouvelle page.

Ce qui suit est un exemple de code simple :

<?php

// 建立数据库连接
$host = "localhost";
$username = "root";
$password = "";
$database = "files";
$conn = mysqli_connect($host, $username, $password, $database);

// 检查连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}

if (isset($_GET["key"]) && !empty($_GET["key"])) {
    $key = $_GET["key"];

    // 从数据库中查找URL
    $sql = "SELECT url FROM files WHERE `key`=&#39;$key&#39; LIMIT 1";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
        // 找到URL
        $row = mysqli_fetch_assoc($result);
        $url = $row["url"];
        echo '<img src="&#39; . $url . &#39;">';
    } else {
        // 找不到URL
        die("文件不存在");
    }
} else {
    die("无效的密钥");
}

// 关闭数据库连接
mysqli_close($conn);

?>
Copier après la connexion

Dans le code ci-dessus, nous établissons d'abord la connexion à la base de données. Nous vérifions ensuite la chaîne de requête pour le paramètre "key" et l'utilisons pour rechercher l'URL dans la base de données. S'il est trouvé, le fichier est affiché. Sinon, si la clé n'est pas valide, un message d'erreur est généré.

Conclusion

Dans cet article, nous avons présenté comment utiliser PHP pour implémenter la fonction de prévisualisation sans téléchargement. Nous pouvons enregistrer l'URL du fichier téléchargé dans la base de données et générer une clé pour celui-ci. Nous pouvons ensuite transmettre cette clé à l'utilisateur et lui dire d'utiliser cette clé pour afficher le fichier à l'avenir. Grâce à cette méthode, nous pouvons avoir un meilleur contrôle sur les fichiers du site Web et garantir que les fichiers ne peuvent être consultés que dans des conditions spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal