我有一个问题,弄清楚这一点。如何在处理上传的图片名称时实施 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/
答案 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;自己扩大使用范围。