我让用户上传图片。然后它创建一个临时文件,但我不想将它移动到永久地址,因为我想将它们带到cropphoto.php
,在那里他们可以从中创建缩略图。如果他们在此之前退出窗口,我不希望它被保存。
如何从以下脚本传递临时图像:
<?php
include_once '../dbconnect.php';
$protocol = !empty($_SERVER['HTTPS']) ? 'https://' : 'http://';
$domain = $protocol. $_SERVER['SERVER_NAME'];
function findexts ($filename) {
$filename = strtolower($filename) ;
$exts = split("[/\\.]", $filename) ;
$n = count($exts)-1;
$exts = $exts[$n];
return $exts;
}
$SubcatID = $_POST['SubcatID'];
if (empty($SubcatID)){
$SubcatID = -1;
}
$ext = findexts ($_FILES['photo']['name']) ;
if ($ext == "jpg" || $ext == "jpeg") {
$return = 'cropphoto.php?PhotoID='.urlencode($_FILES['photo']['name']);
header("Location: $return");
}
else {
echo "ERROR: The image must be a JPEG";
exit;
}
?>
当前的url paramater im使用刚刚传递的图像名称,但我找不到它所在的临时文件夹。
答案 0 :(得分:2)
PHP会在脚本退出时自动删除该文件,除非您采取措施保留它。我建议将文件移动到具有一些唯一文件名的暂存目录。您将此文件名传递给裁剪脚本。裁剪脚本执行任何操作,然后将文件移动到其最终目标。
要处理孤立文件(例如用户关闭窗口),您可以让一个定时作业在登台目录中进行清理。任何超过特定时期(10分钟,30分钟等)的文件都会被删除。有一种方法可以让浏览器告诉服务器它正在关闭,但它们不可靠,所以你仍然需要这个预定的工作来进行适当的清理。