0

私のウェブサイトにアップローダーがあり、画像ファイルの名前を(「元の名前」+「乱数」)の最後に乱数で変更します。

アップロードされたファイルを順番に並べて、最近アップロードされた画像が自動入力ページの上部に表示されるようにしたいと思います。

現在、コードには乱数ジェネレーターがあり、元のファイル名を取得して先頭に配置します..

すべての写真を 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);

編集: ファイルはすべて、ディレクトリ フォルダーにアップロードされます。このコードを別のページで使用して、それらを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');
     });
  }
});
4

1 に答える 1

0

これは本当に簡単な方法です。2人がまったく同時にアップロードしない場合...

以下を含むディレクトリを作成する必要があります。

  • index.php
  • anotherpage.php //この名前は重要ではありません(これは最新の画像を取得するためだけのものです)
  • /アップロード
  • count.txt
  • inc.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 />";

?>

inc.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タイプはスプーフィングされる可能性があることを忘れないでください。これは、問題に対する簡単な解決策です。

于 2012-10-31T23:24:04.330 に答える