【问题标题】:Multiple images rename & uploading in PHP在 PHP 中重命名和上传多个图像
【发布时间】:2014-08-02 23:15:15
【问题描述】:

我正在使用以下代码将一组图像上传到服务器,我在上传时重命名文件,但是当我尝试上传多个文件时,它会自动替换文件,而不是我需要命名其他文件文件名末尾有 2、3、4 等。

<input type="file" name="upl" />
<input type="submit" value="submit" />

$_SESSION['imgrand'] 是生成并通过会话传递的随机字符串。

function findexts ($filename) 
 { 
 $filename = strtolower($filename) ; 
 $exts = split("[/\\.]", $filename) ; 
 $n = count($exts)-1; 
 $exts = $exts[$n]; 
 return $exts; 
 } 
 $ext = findexts ($_FILES['upl']['name']) ; 
 $ran = $_SESSION['imgrand'];
 $ran2 = $ran.".";
 $target = "uploads/";
 $target = $target . $ran2.$ext; 

 if(move_uploaded_file($_FILES['upl']['tmp_name'], $target)) 
 {
 echo "The file has been upl as ".$ran2.$ext;
 } 
 else
 {
 echo "Sorry, there was a problem uploading your file.";
 }

例如,如果随机字符串是 jahkhakshdkjshdjksahds,我需要将图像命名为 jahkhakshdkjshdjksahds1.ext、jahkhakshdkjshdjksahds2.ext、jahkhakshdkjshdjksahds3.ext、jahkhakshdkjshdjksahds4.ext、jahkhakshdkjshdjksahds5.ext。?>

【问题讨论】:

    标签: php


    【解决方案1】:

    在overright之前测试现有文件。

    ...
    $ext = findexts ($_FILES['upl']['name']) ; 
    $ran = $_SESSION['imgrand'];
    $target = "uploads/".$ran;
    
    for($i=1;$i < 100;$i++) {
      $filename = $target.$i.".".$ext;
      if (file_exists($filename)) {
        continue;
      } else {
        if(move_uploaded_file($_FILES['upl']['tmp_name'], $filename)) 
        {
        echo "The file has been upl as : ".$filename;
        break; 
        } 
        else
        {
        echo "Sorry, there was a problem uploading your file: ".$filename;
        break;
        }
      } // not file_ex
    } // for
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      相关资源
      最近更新 更多