Php 如何更改上载的文件名,使其具有序列号名称而不是随机名称

Php 如何更改上载的文件名,使其具有序列号名称而不是随机名称,php,file,upload,Php,File,Upload,我在我的网站上有一个上传程序,它在最后用(“原始名称”+“随机数”)一个随机数重命名图像文件 我想有一个顺序上传的文件,以便最近必须上传的图片在自动填充页面的顶部 现在代码有了随机数生成器,然后它取原始文件名并将其放在开头 我只想所有的照片读起来像10.jpg,然后下一张照片上传是9.jpg和8.jpg 自动填充功能,我现在把最小的数字放在第一页 如何做到这一点。我担心的是,当下一个人上传它时,它会覆盖上一个“起始”点10.jpg文件吗 您可以在这里查看php文件http://ilovesmal

我在我的网站上有一个上传程序,它在最后用(“原始名称”+“随机数”)一个随机数重命名图像文件

我想有一个顺序上传的文件,以便最近必须上传的图片在自动填充页面的顶部

现在代码有了随机数生成器,然后它取原始文件名并将其放在开头

我只想所有的照片读起来像10.jpg,然后下一张照片上传是9.jpg和8.jpg

自动填充功能,我现在把最小的数字放在第一页

如何做到这一点。我担心的是,当下一个人上传它时,它会覆盖上一个“起始”点10.jpg文件吗

您可以在这里查看php文件
http://ilovesmallies.com/forum/processupload.php

 // Random number for both file, will be added after image name
    $RandomNumber   = rand(0, 9999999999); 


//Get file extension from Image name, this will be re-added after random name
    $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
    $ImageExt = str_replace('.','',$ImageExt);
编辑:所有文件都上载到directoryfolder。 我在一个单独的页面上使用此代码将它们绘制到一个div中,然后该div将自动填充该页面上的缩略图。

<script>
$.ajax({
  url: "user-uploads-thumbnails",
  success: function(data){
     $(data).find("a:contains(.jpg)").each(function(){
        // will loop through 
var images = 'user-uploads-thumbnails/' + $(this).attr("href");
var linkimage = 'user-uploads/' + $(this).attr("href");
 //backup $('<p><a href="' + linkimage + '"><img src="' + images + '"></a></p>').appendTo('#content');
$('<p><a class="fancybox" href="' + linkimage + '" data-fancybox-group="gallery"><img src="' + images + '"></a></p>').appendTo('#content');
     });
  }
});

$.ajax({
url:“用户上传缩略图”,
成功:功能(数据){
$(数据).find(“a:contains(.jpg)”).each(函数(){
//将循环通过
var images='用户上传缩略图/'+$(this.attr(“href”);
var linkimage='user uploads/'+$(this.attr(“href”);
//备份$('

')。附加到('#内容'); $(“

”)。附录(“#内容”); }); } });
这是一种非常简单的方法。如果没有两个人同时上传

您需要创建一个包含以下内容的目录:

  • index.php
  • anotherpage.php//这个名称无关紧要(这只是为了获取最新的图像)
  • /上传
  • count.txt
  • php公司
index.php

<?php


    include("inc.php");
    if(isset($_FILES["file"])){
        $new_filename = read_file($counter_file); // fetch the number for filename
        $new_filename++; // increment the counter
        move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $new_filename.".jpg"); // assumes jpg (easily extended to other formats)
        write_to_file($new_filename,$counter_file);

        echo "<img src=\"upload/".$new_filename.".jpg\" /><br />";
    }

?>

<form id="upload" action="index.php" enctype="multipart/form-data" method="post"> 
    <input type="file" name="file" id="file" /> <br />
    <input type="submit" value="go" />  
</form>


anotherpage.php

<?php

    include("inc.php");

    $new_filename = read_file($counter_file);
    echo "<img src=\"upload/".$new_filename.".jpg\" /><br />";

?>

php公司

<?php

        $counter_file = "count.txt"; // name of the file containing your file count

        function write_to_file($text,$filename){
            $fp = fopen($filename, 'w');
            fwrite($fp, $text);
            fclose($fp);
        }

        function read_file($filename){
        $handle = fopen($filename, "r");
        $contents = fread($handle, filesize($filename));
        fclose($handle);
        return($contents);
        }

?>


警告:这不包含验证。请记住,可以提供文件的mime类型。这是解决您的问题的简单可行的解决方案。

一种安全的方法是使用数据库生成ID,然后重命名图像。那么,您是否有计数器或其他工具来跟踪上载了多少文件?其次,有一些方法可以t文件基于创建时间,它不依赖于文件名。这样的解决方案可以接受吗?我不在乎它是以哪种方式完成的,我只想确保最新的图片位于顶部…我同意@SalmanA,但是如果你想根据文件名对文件进行排序,你可以预先编写
time()
到文件名。自动填充页面使用的代码是什么?可以对其进行修改以按特定顺序读取文件。