PHP:在另一页上使用临时图像文件。

时间:2011-07-28 21:13:54

标签: php

我让用户上传图片。然后它创建一个临时文件,但我不想将它移动到永久地址,因为我想将它们带到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使用刚刚传递的图像名称,但我找不到它所在的临时文件夹。

1 个答案:

答案 0 :(得分:2)

PHP会在脚本退出时自动删除该文件,除非您采取措施保留它。我建议将文件移动到具有一些唯一文件名的暂存目录。您将此文件名传递给裁剪脚本。裁剪脚本执行任何操作,然后将文件移动到其最终目标。

要处理孤立文件(例如用户关闭窗口),您可以让一个定时作业在登台目录中进行清理。任何超过特定时期(10分钟,30分钟等)的文件都会被删除。有一种方法可以让浏览器告诉服务器它正在关闭,但它们不可靠,所以你仍然需要这个预定的工作来进行适当的清理。