Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在上载过程中唯一重命名文件_Php_File_File Rename - Fatal编程技术网

Php 在上载过程中唯一重命名文件

Php 在上载过程中唯一重命名文件,php,file,file-rename,Php,File,File Rename,我想上传图像,并在用户全名后重命名它们。这很有效,但我希望通过添加一个数字来唯一地命名它们,例如Fname\u Lname\u 1.jpg,Fname\u Lname\u 2.jpg,等等。我的问题是,没有出现数字增量。而是第一个文件被新上载的文件替换,因为新上载的文件采用第一个文件的名称 <?php require 'Connections/Conn.php'; require 'core/init.php'; if(isset($_SESSION["UserID"])){ }els

我想上传图像,并在用户全名后重命名它们。这很有效,但我希望通过添加一个数字来唯一地命名它们,例如
Fname\u Lname\u 1.jpg
Fname\u Lname\u 2.jpg
,等等。我的问题是,没有出现数字增量。而是第一个文件被新上载的文件替换,因为新上载的文件采用第一个文件的名称

<?php 
require 'Connections/Conn.php';
require 'core/init.php';

if(isset($_SESSION["UserID"])){
}else{
    header('Location: Login.php');
}

//Parse UserId into variable $userid
$userid =  $_SESSION["UserID"];
//Parse User Fname, '_' & Lname into variable userfullname
$userfullname = $_SESSION["LName"].'_'.$_SESSION["FName"];
//Add UserID and userfullname and parse it into foldername
$foldername = $userid.'_'.$userfullname;

//Now save the path into this variable
$enclosedFolder="./Users/" . $foldername . "/Main/";

// Count sent by plugin
$Images =count(isset($_FILES['images']['name'])?$_FILES['images']['name']:0);
$infoImagesUploaded = array();

for($i = 0; $i < $Images; $i++) {


    // The name and the temporary file name we're gonna attach
    $fileName=isset($_FILES['images']['name'][$i])?$_FILES['images']['name'][$i]:null;
    $fileTemp=isset($_FILES['images']['tmp_name'][$i])?$_FILES['images']['tmp_name'][$i]:null;

    $numb = 0;  
    $newfilename = $userfullname.'_'.($numb++).".jpg";


    $pathFile=$enclosedFolder.$newfilename;

    move_uploaded_file($fileTemp,$pathFile);
    $infoImagesUploaded[$i]=array("caption"=>"$fileName","height"=>"120px","url"=>"MainDelete.php","key"=>$fileName);
    $ImagesUploaded[$i]="<img  height='120px'  src='$pathFile' class='file-preview-image'>";


}

$arr = array("file_id"=>0,"overwriteInitial"=>true,"initialPreviewConfig"=>$infoImagesUploaded, "initialPreview"=>$ImagesUploaded);
echo json_encode($arr);
?>

执行此操作的一般方法是创建一个唯一的id(大多数情况下是通过该id),并在其上附加一个时间戳。示例:
uniqid()$userfullname.'.\u'。时间()。“.jpg”。强制使用
.jpg
扩展名也不是最好的方法,可能需要根据上传的图像创建扩展名。通常的做法是创建一个唯一的id(大多数情况下都是这样),并在其上附加一个时间戳。示例:
uniqid()$userfullname.'.\u'。时间()。“.jpg”。强制使用
.jpg
扩展也不是最好的方法,可能需要根据上传的图像创建扩展。