Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 重命名没有原始名称的文件_Php_Html_Image Uploading_File Rename - Fatal编程技术网

Php 重命名没有原始名称的文件

Php 重命名没有原始名称的文件,php,html,image-uploading,file-rename,Php,Html,Image Uploading,File Rename,我上传多个文件使用单一的输入和重命名名称它一切正常 我试图重命名,所以使用了$newname=md5(rand()*time())并正常工作但是我希望文件重命名而不使用原始名称 代码 此代码工作正常。输出文件另存为26c73b3b8da05352340ad62a913fa26601 uploadingfile.jpg 我需要的是我只想跳过原始文件名 输出: 你可以用 $renamed_file_name = $newname.orginal name. $extension; str_repl

我上传多个文件使用单一的输入和重命名名称它一切正常

我试图重命名,所以使用了
$newname=md5(rand()*time())并正常工作但是我希望文件重命名而不使用原始名称

代码 此代码工作正常。输出文件另存为
26c73b3b8da05352340ad62a913fa26601 uploadingfile.jpg

我需要的是我只想跳过原始文件名

输出: 你可以用

$renamed_file_name = $newname.orginal name. $extension;

str_replace('original_file_name', '', $renamed_file_name);
它将用空白文件名替换原始文件名,并且您将获得没有原始文件名的文件名

您可以使用

$renamed_file_name = $newname.orginal name. $extension;

str_replace('original_file_name', '', $renamed_file_name);

它会将原始文件名替换为空,您将获得没有原始文件名的文件名

您可以通过这种方式获得文件扩展名

 $path = pathinfo($filename);
 // this is how you remove the original filename and keep the extension
 $newname = md5(rand() * time()) . '.' . $path['extension'];
这是你的代码

  if (isset($_FILES['files'])) {
      $errors = array();
      foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) {
          $file_name = $key . $_FILES['files']['name'][$key];
          /// file parts
          $path = pathinfo($file_name);
          /// extenstion
          $ext = $path['extension'];
          // this is how you remove the original filename and keep the extension (overwrite $file_name)
          $file_name = md5(rand() * time()) .'.'. $path['extension'];

          $file_size = $_FILES['files']['size'][$key];
          $file_tmp = $_FILES['files']['tmp_name'][$key];
          $file_type = $_FILES['files']['type'][$key];
          if ($file_size > 2097152000) {
              $errors[] = 'File size must be less than 2 MB';
          }
          $desired_dir = "user_data/";
          if (empty($errors) == true) {
              if (is_dir($desired_dir) == false) {
                  mkdir("$desired_dir", 0700);        // Create directory if it does not exist
              }
              if (is_dir("$desired_dir/" . $file_name) == false) {
                  move_uploaded_file($file_tmp, "$desired_dir/" . $file_name);
              } else {                                  // rename the file if another one exist
                  $new_dir = "$desired_dir/" . $file_name;
                  rename($file_tmp, $new_dir);
              }
          } else {
              print_r($errors);
          }
      }      

  }
?>

您可以这样获得文件扩展名

 $path = pathinfo($filename);
 // this is how you remove the original filename and keep the extension
 $newname = md5(rand() * time()) . '.' . $path['extension'];
这是你的代码

  if (isset($_FILES['files'])) {
      $errors = array();
      foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) {
          $file_name = $key . $_FILES['files']['name'][$key];
          /// file parts
          $path = pathinfo($file_name);
          /// extenstion
          $ext = $path['extension'];
          // this is how you remove the original filename and keep the extension (overwrite $file_name)
          $file_name = md5(rand() * time()) .'.'. $path['extension'];

          $file_size = $_FILES['files']['size'][$key];
          $file_tmp = $_FILES['files']['tmp_name'][$key];
          $file_type = $_FILES['files']['type'][$key];
          if ($file_size > 2097152000) {
              $errors[] = 'File size must be less than 2 MB';
          }
          $desired_dir = "user_data/";
          if (empty($errors) == true) {
              if (is_dir($desired_dir) == false) {
                  mkdir("$desired_dir", 0700);        // Create directory if it does not exist
              }
              if (is_dir("$desired_dir/" . $file_name) == false) {
                  move_uploaded_file($file_tmp, "$desired_dir/" . $file_name);
              } else {                                  // rename the file if another one exist
                  $new_dir = "$desired_dir/" . $file_name;
                  rename($file_tmp, $new_dir);
              }
          } else {
              print_r($errors);
          }
      }      

  }
?>


U可以尝试将tmp文件分解为两部分,即名称和扩展名,然后在提供新名称(如time()。$ext)时


很抱歉,现在无法提供更多信息,因为我使用了移动应用程序,但我将于明天发布。

您可以尝试将tmp文件分为两部分:名称和扩展名,然后在使用新名称(如time())时尝试将其分解。$ext



抱歉,我现在无法提供更多信息,因为我使用了移动应用程序,但我将于明天发布。

$new\u dir=“$desired\u dir/”$新名称@MarcoMura我尝试过,但文件保存时没有扩展名$new_dir=“$desired_dir/”$新名称@MarcoMura我试过了,但文件保存时没有扩展名。您可以编写完整的代码吗?因为我对您的代码在哪里更改和执行什么有点困惑。请检查我上面的代码并根据它进行更改,因为我只有
$新名字$文件名
文件名
带有扩展名,因此我需要从文件名中提取扩展名。您能否填写完整的代码,因为我对您的代码在哪里更改和执行什么有点困惑。请检查上面的代码并根据它进行更改,因为我只有
$新名字$文件名
文件名
带有扩展名,因此我需要从文件名中提取扩展名我尝试过保存文件,但它不包含扩展名意味着一个空文件没有扩展名您可以在代码中做一些小的更改我需要
回显
所有带有扩展名的文件名只需写入
回显$newname
检查我上面添加的代码putput
$file1``$file2```$file3`$file4```$file5
显示我需要的每个文件名,以便我可以将文件名保存到
SQL
如何上载所有上载的图像名我尝试过的文件已保存,但它不包含扩展名意味着一个空文件没有扩展名可以对代码进行小的更改,我需要
echo
全部带扩展名的文件名只需写
echo$newname
检查上面的代码我已经添加了putput
$file1``$file2``$file3```$file4````$file5
来显示我需要的每个文件名,这样我就可以将文件名保存到
SQL
如何上传所有上传的图像名如何通过存储上传的图像名来显示所有上传的图像名文件名,每次成功。检查我编辑的答案。顺便说一句,在收到正确答案后,您不能总是更改问题中的内容。这将导致您的帖子被删除。请您帮助我,我只需要将文件名作为
file name1
file name2
等进行回声上传,
$file1=一个图像名
$file2=第二个图像名称
$file3=第三个图像名称
$file4=第四个图像名称
file5=第5个图像名称因为我只允许5个图像,所以我需要在单独的变量中显示5个图像名称如何通过每次成功存储上载的文件名来显示所有上载的图像名称。检查我编辑的答案。顺便说一句,在收到正确答案后,您不能总是更改问题中的内容。这将导致您的帖子被删除。请您帮助我,我只需要将文件名作为
file name1
file name2
等进行回声上传,
$file1=一个图像名
$file2=第二个图像名称
$file3=第三个图像名称
$file4=第四个图像名称
file5=第5个图像名称因为我只允许5个图像,所以我需要在单独的变量中显示5个图像名称