PHP上传isset并重命名文件,如果它存在 [英] php upload isset and rename file if it's exist

查看:162
本文介绍了PHP上传isset并重命名文件,如果它存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道,这个问题有很多解决方案,但不幸的是我无法解决这个问题,下面是我的上传代码:

 <$ c ($ amp; $ file,$ destinationDir =,$ destinationName =,$ secure = true)
{
$ ret = false;

if(isset($ file ['tmp_name'])&& isset($ file ['name']))
{
if($ destinationName == '')
{
$ destinationName = $ file ['name'];
}
$ destinationFile = $ destinationDir。 '/'。 $ destinationName;
$ b $ if(move_uploaded_file($ file ['tmp_name'],$ destinationFile))
{
if($ secure)
{
chmod($ destinationFile,0644); //没有执行权限,如果可能的话

$ ret = true;
}
}

return $ ret;

$ / code>

1:如何在上传到服务器时重命名文件?



2:如果文件名是存在的话怎么自动重命名?

提前致谢 $ b $对于这种情况,使用 file_exists

 

code> public static function upload(& $ file,$ destinationDir =,$ destinationName =,$ secure = true){
$ ret = false;
$ b $ if(isset($ file ['tmp_name'])&& isset($ file ['name'])){
if($ destinationName ==''){
$ destinationName = md5($ file ['name']);
}
$ destinationFile = $ destinationDir。'/'。$ destinationName;

if(file_exists($ destinationFile)){
//改变目标文件名(如果存在的话)
$ destinationFile = $ destinationDir。'/'。md5($ destinationName。兰特());

$ b $ if(move_uploaded_file($ file ['tmp_name'],$ destinationFile)){
if($ secure){
chmod($ destinationFile,0644 ); //没有执行权限,如果可能的话

$ ret = true;
}
}

注意: />
move_uploaded_file - 将上传的文件移动到新的位置
像这样构造




$ move $ upload $字符串$ filename,字符串$目的地)

in $ destination 参数你给你新的上传文件的名称。将文件命名为独特的东西。无论如何,所以不要担心这个

I know, there are many solutions for this question, but unfortunately I couldn't solve it, Here is my upload code:

 public static function upload(&$file, $destinationDir = "", $destinationName = "", $secure = true)
  {
$ret = false;

if (isset($file['tmp_name']) && isset($file['name']))
{
  if ($destinationName == '')
  {
    $destinationName = $file['name'];
  }
  $destinationFile = $destinationDir . '/' . $destinationName;

  if (move_uploaded_file($file['tmp_name'], $destinationFile))
  {
    if ($secure)
    {
      chmod($destinationFile, 0644); // without execution permissions if it is possible
    }
    $ret = true;
  }
}

return $ret;
  }

1: How can I rename file while uploading to server ?

2: If file name is exist then how to rename it automatically?

Thanks in advance

解决方案

Use file_exists for this case :

 public static function upload(&$file, $destinationDir = "", $destinationName = "", $secure = true){
$ret = false;

if(isset($file['tmp_name']) && isset($file['name'])){
  if ($destinationName == ''){
    $destinationName = md5($file['name']);
  }
  $destinationFile = $destinationDir.'/'.$destinationName;

  if(file_exists($destinationFile)){
      // Change the destination file name if it exists
      $destinationFile = $destinationDir.'/'.md5($destinationName.rand());
  }

  if (move_uploaded_file($file['tmp_name'], $destinationFile)){
    if($secure){
      chmod($destinationFile, 0644); // without execution permissions if it is possible
    }
    $ret = true;
  }
}

Note:
move_uploaded_file — Moves an uploaded file to a new location structured like this

bool move_uploaded_file ( string $filename , string $destination )

in $destination parameter you give the name of your new uploaded file. Name your file to something that unique. Whatever !, so don't worry about this

这篇关于PHP上传isset并重命名文件,如果它存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆