程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP - 将文件上传到目录并将文件扩展名添加到底部时的随机文件名?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决PHP - 将文件上传到目录并将文件扩展名添加到底部时的随机文件名??

开发过程中遇到PHP - 将文件上传到目录并将文件扩展名添加到底部时的随机文件名?的问题如何解决?下面主要结合日常开发的经验,给出你关于PHP - 将文件上传到目录并将文件扩展名添加到底部时的随机文件名?的解决方法建议,希望对你解决PHP - 将文件上传到目录并将文件扩展名添加到底部时的随机文件名?有所启发或帮助;

我使用 PHP 和 HTML 以及 java 制作了一个 uload 系统,但我担心重复文件。如何让它以随机名称保存并添加其扩展名?

<?PHP
   if(isset($_fileS['image'])){
      $errors= array();
      $test = uniqID()
      $file_name = ['image']['name'];
      $file_size =$_fileS['image']['size'];
      $file_tmp =$_fileS['image']['tmp_name'];
      $file_type=$_fileS['image']['type'];
      $file_ext=strtolower(end(explode('.',$_fileS['image']['name'])));
      
      $extensions= array("jpeg","jpg","png","rbxl","mp4","mp3");
      
      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed";
      }
      
      if($file_size > 600000000){
         $errors[]='file size must be excately 600 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "https://glotech.cf/images/";
         print_r($file_name);
      }else{
         print_r($errors);
      }
        
   }
?>   

window.addEventListener("paste",e => {
  if (e.clipboardData.files.length > 0) {
    const fileImput = document.querySelector("#myfile");
    fileImput.files = e.clipboardData.files;
  }
});
<form action="/test.PHP" method="post" enctype="multipart/form-data">
  <input type="file" name="image" ID="myfile">
  <input type="submit" />
</form>

我怎样才能用随机名称保存它?

解决方法

有些函数可以生成多种语言的随机字符串。例如,在 PHP 中,您可以使用 md5()uniqid()

您的代码正在使用原始文件的名称上传文件。因此,如果您想避免重复文件名,只需生成一个唯一的代码并将其包含在文件名中。此外,您可以使用 time() 函数为文件名添加时间戳,这将防止文件名重复。

$file_name = time() . "-" . $_FILES['image']['name'];
// output: "1615273926-filename.jpg"

如果你想在上面的例子中颠倒文件名和时间戳的顺序,你可以使用pathinfo()函数。见:

$file_name_pathinfo = pathinfo($_FILES['image']['name']);
$file_name = $file_name_pathinfo['basename'] . "-" . time() . "." . $file_name_pathinfo['extension'];
// output: "filename-1615273926.jpg"

这应该可以防止文件重名。

了解更多:

  • pathinfo:https://www.php.net/manual/pt_BR/function.pathinfo.php
  • time():https://www.php.net/manual/pt_BR/function.time.php
,

尝试一些随机数

$file_name = ['image']['name'];
$random = rand(000,999);
$random = str_pad($random,3,'0',STR_PAD_LEFT);
$imgname = $random.$file_name;

移动上传

move_uploaded_file($_FILES["userImage"]["tmp_name"],"uploaddirectory/" . $imgname);

如果你想要文件存在,把上面的行放在条件检查中

if (file_exists("uploaddirectory/" . $imgname)
     {
                echo $imgname . " already exists. ";
        die;
      }
      else
      {
       //do something
}
,

在文件名末尾添加时间戳,使其独一无二。

 $fileName = time() .' '. $_FILES['image']['name'];

大佬总结

以上是大佬教程为你收集整理的PHP - 将文件上传到目录并将文件扩展名添加到底部时的随机文件名?全部内容,希望文章能够帮你解决PHP - 将文件上传到目录并将文件扩展名添加到底部时的随机文件名?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: