如何在个人资料图片上传中实现cookie?

时间:2016-03-03 13:50:06

标签: php html cookies

我有一个问题,弄清楚这一点。如何在处理上传的图片名称时实施 cookie

我有2个文件:

index.php (您可以在其中设置个人资料图片)。

 <form action="setPicture.php" method="post" enctype="multipart/form-data" >
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">

setPicture.php

 if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }

如果用户上传了个人资料图片,它将保存在 data / img / admin 中,我必须使用该来源将其保存在 Cookie 中,然后重定向设置个人资料照片的主页 index.php

有人可以帮我理解实施吗?

这是我工作的完整代码。 https://jsfiddle.net/u5c4sz6u/1/

1 个答案:

答案 0 :(得分:2)

Cookie 通常用于记录迷你临时数据,您希望稍后在发生某些交互时访问这些数据(例如:网页互动)。在您的情况下,您希望将Cookie的值保存为成功上传图片的路径

简单来说,你可以:

  • 如果图片已成功上传 ,请取出该文件的路径,然后将其保存到Cookie中:

     if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    
       $full_path =$target_dir.( $_FILES["fileToUpload"]["name"]);
      // set the cookie
     setcookie("mypathvalueissaved",$full_path, time()+3600);  /* expire in 1 hour */ 
     }
    

现在创建了一个名为 "mypathvalueissaved" 的新Cookie,其值为 $full_path ,这是的值目标路径 + 文件的名称(包含扩展名)。

  • 稍后当您想要访问cookie时,只需参考 cookie的名称(即使在不同的页面中,它也会被识别,因为 $ _ COOKIE 是假设您没有为$_COOKIE["mypathvalueissaved"]设置特定域的cookie的超全局数组。 就像上传成功时一样,设置cookie然后重定向,最后将cookie的值设置为<img src= >的值,如<img src="<?php echo $_COOKIE['mypathvalueissaved'];?>">

     // if the cookie with a "mypathvalueissaved" name was successfully created before
     if (isset($_COOKIE["mypathvalueissaved"])){ 
    
       }
    

这只是简要的解释,你可以改进&amp;自己扩大使用范围。