在我的服务器上传时,如何重命名带有时间戳的图像文件?

时间:2017-05-04 03:26:57

标签: php html post upload timestamp

这是我的upload.php代码,点击“上传”按钮后会发布。我的目标是通过时间戳重新命名上传的图像文件,请帮忙!

<?php require_once("includes/connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php
//turn on php error reporting
error_reporting(E_ALL);
ini_set('display_errors', 1);

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $name     = $_FILES['file']['name'];
    $tmpName  = $_FILES['file']['tmp_name'];
    $error    = $_FILES['file']['error'];
    $size     = $_FILES['file']['size'];
    $ext      = strtolower(pathinfo($name, PATHINFO_EXTENSION));

    switch ($error) {
        case UPLOAD_ERR_OK:
            $valid = true;
            //validate file extensions
            if ( !in_array($ext, array('jpg','jpeg','png','gif')) ) {
                $valid = false;
                $response = 'Invalid file extension.';
            }
            //validate file size
            if ( $size/1024/1024 > 2 ) {
                $valid = false;
                $response = 'File size is exceeding maximum allowed size.';
            }
            //upload file
            if ($valid) {
                $targetPath =  dirname( __FILE__ ) . DIRECTORY_SEPARATOR. 
            'uploads' . DIRECTORY_SEPARATOR. $name;
                move_uploaded_file($tmpName,$targetPath); 
                header( 'Location: CheckTooth.php' ) ;
                exit;
            }
        break;
    case UPLOAD_ERR_INI_SIZE:
        $response = 'The uploaded file exceeds the upload_max_filesize 
        directive in php.ini.';
        break;
    case UPLOAD_ERR_PARTIAL:
        $response = 'The uploaded file was only partially uploaded.';
        break;
    case UPLOAD_ERR_NO_FILE:
        $response = 'No file was uploaded.';
        break;
    case UPLOAD_ERR_NO_TMP_DIR:
        $response = 'Missing a temporary folder. Introduced in PHP 4.3.10 
        and PHP 5.0.3.';
        break;
    case UPLOAD_ERR_CANT_WRITE:
        $response = 'Failed to write file to disk. Introduced in PHP 
        5.1.0.';
        break;
    default:
        $response = 'Unknown error';
    break;
}

echo $response;
}
?>

我需要添加时间戳,以便我的opencv能够读取多个文件。

1 个答案:

答案 0 :(得分:0)

使用$targetPath代替time()更新$name

//upload file
if ($valid) {
    // UPDATED LINE
    $targetPath =  dirname( __FILE__ ) . DIRECTORY_SEPARATOR. 
      'uploads' . DIRECTORY_SEPARATOR . time();
    move_uploaded_file($tmpName,$targetPath); 
    header( 'Location: CheckTooth.php' ) ;
    exit;
}