Php 上载时更改文件名

Php 上载时更改文件名,php,Php,我目前有一个表单,在下面的代码中处理的输入中有2xname=userfile[]属性。什么是使我能够在上传时重命名每个文件的文件名的最佳方法?我希望它们特定于输入 我在追求什么: $imageOneName = img1.$var; $imageTwoName = img2.$var; 代码: for($i=0; $i<count($_FILES['userfile']['name']); $i++) { //Get the temp file path $tmpFilePath

我目前有一个表单,在下面的代码中处理的输入中有2x
name=userfile[]
属性。什么是使我能够在上传时重命名每个文件的文件名的最佳方法?我希望它们特定于
输入

我在追求什么:

$imageOneName = img1.$var;
$imageTwoName = img2.$var;
代码:

for($i=0; $i<count($_FILES['userfile']['name']); $i++) {
  //Get the temp file path
  $tmpFilePath = $_FILES['userfile']['tmp_name'][$i];

  //Make sure we have a filepath
  if ($tmpFilePath != ""){
    //Setup our new file path
    $newFilePath = $local_path .'images/' . $_FILES['userfile']['name'][$i];


    //Upload the file into the temp dir
    if(move_uploaded_file($tmpFilePath, $newFilePath)) {

      //Handle other code here

    }
  }
}
对于($i=0;$i请尝试以下代码:-

$extension = pathinfo($_FILES['userfile']['name'][$i], PATHINFO_EXTENSION); //Get extension of image
$new= rand(0000,9999); //creat random name
$file_name=$new.'.'.$extension; //create file name with extension
$newFilePath = $local_path .'images/' . $file_name;
请尝试以下代码:-

$extension = pathinfo($_FILES['userfile']['name'][$i], PATHINFO_EXTENSION); //Get extension of image
$new= rand(0000,9999); //creat random name
$file_name=$new.'.'.$extension; //create file name with extension
$newFilePath = $local_path .'images/' . $file_name;
请尝试以下代码:-

$extension = pathinfo($_FILES['userfile']['name'][$i], PATHINFO_EXTENSION); //Get extension of image
$new= rand(0000,9999); //creat random name
$file_name=$new.'.'.$extension; //create file name with extension
$newFilePath = $local_path .'images/' . $file_name;
请尝试以下代码:-

$extension = pathinfo($_FILES['userfile']['name'][$i], PATHINFO_EXTENSION); //Get extension of image
$new= rand(0000,9999); //creat random name
$file_name=$new.'.'.$extension; //create file name with extension
$newFilePath = $local_path .'images/' . $file_name;

使用下面的代码为每个文件生成唯一的文件名

$file_name = preg_replace('/\s+/', '', $_FILES['userfile']['name'][$i]); /// remove unexpected symbols , number 
$path[$i]="image/".time().$i.$file_name; /// generate unique name
move_uploaded_file($file_tmp[$i],$path[$i]); /// move that file on your path folder

使用下面的代码为每个文件生成唯一的文件名

$file_name = preg_replace('/\s+/', '', $_FILES['userfile']['name'][$i]); /// remove unexpected symbols , number 
$path[$i]="image/".time().$i.$file_name; /// generate unique name
move_uploaded_file($file_tmp[$i],$path[$i]); /// move that file on your path folder

使用下面的代码为每个文件生成唯一的文件名

$file_name = preg_replace('/\s+/', '', $_FILES['userfile']['name'][$i]); /// remove unexpected symbols , number 
$path[$i]="image/".time().$i.$file_name; /// generate unique name
move_uploaded_file($file_tmp[$i],$path[$i]); /// move that file on your path folder

使用下面的代码为每个文件生成唯一的文件名

$file_name = preg_replace('/\s+/', '', $_FILES['userfile']['name'][$i]); /// remove unexpected symbols , number 
$path[$i]="image/".time().$i.$file_name; /// generate unique name
move_uploaded_file($file_tmp[$i],$path[$i]); /// move that file on your path folder
而不是

<input type="file" name="userfile[]" id="input1">
<input type="file" name="userfile[]" id="input2">
请注意:此代码将覆盖已具有该名称的文件

编辑

如果需要多个文件选择

<input type="file" name="userfile[desiredNameOfFile1][]" id="input1" multiple>
<input type="file" name="userfile[desiredNameOfFile2][]" id="input2" multiple>

Php

foreach($\u FILES['userfile']['name']作为$desiredNameOfFile=>$fileInfo){
对于($i=0;$i
而不是

<input type="file" name="userfile[]" id="input1">
<input type="file" name="userfile[]" id="input2">
请注意:此代码将覆盖已具有该名称的文件

编辑

如果需要多个文件选择

<input type="file" name="userfile[desiredNameOfFile1][]" id="input1" multiple>
<input type="file" name="userfile[desiredNameOfFile2][]" id="input2" multiple>

Php

foreach($\u FILES['userfile']['name']作为$desiredNameOfFile=>$fileInfo){
对于($i=0;$i
而不是

<input type="file" name="userfile[]" id="input1">
<input type="file" name="userfile[]" id="input2">
请注意:此代码将覆盖已具有该名称的文件

编辑

如果需要多个文件选择

<input type="file" name="userfile[desiredNameOfFile1][]" id="input1" multiple>
<input type="file" name="userfile[desiredNameOfFile2][]" id="input2" multiple>

Php

foreach($\u FILES['userfile']['name']作为$desiredNameOfFile=>$fileInfo){
对于($i=0;$i
而不是

<input type="file" name="userfile[]" id="input1">
<input type="file" name="userfile[]" id="input2">
请注意:此代码将覆盖已具有该名称的文件

编辑

如果需要多个文件选择

<input type="file" name="userfile[desiredNameOfFile1][]" id="input1" multiple>
<input type="file" name="userfile[desiredNameOfFile2][]" id="input2" multiple>

Php

foreach($\u FILES['userfile']['name']作为$desiredNameOfFile=>$fileInfo){
对于($i=0;$i
您可以在每个文件中附加一个随机生成的密钥。
使我能够重命名文件名的最佳方法
为什么?我的意思是,您现在面临的问题是什么?带有不同图像的多个详细信息,我只是很挑剔,我希望所有这些都整洁,以便我知道如果任何代码中断会发生什么“我希望它们特定于输入”你能帮我翻译一下吗?你想的新名字列表在哪里?或者只是随机的?我看不出有任何问题。只要注意文件名可能会重复,所以很难存储和检索上传的同一个文件。重命名时,我建议添加
用户id
文档id
和时间戳(
time()
)在文件名中。因此您可以确保它是同一个文件。在向用户显示时,您可以跳过
用户id
/
文档id
和时间戳。您可以在每个文件中附加随机生成的密钥。
使我能够重命名文件名的最佳方法
为什么?我的意思是您现在面临的问题是什么?具有不同图像的多细节我只是太挑剔了,我希望一切都井然有序,我知道如果有任何代码中断会发生什么“我希望它们是特定于输入的”你能帮我翻译一下吗?你想的新名字列表在哪里?或者只是随机的?我看不出有任何问题。只要注意文件名可能会重复,所以很难存储和检索上传的同一个文件。重命名时,我建议添加
用户id
文档id
和时间戳(
time()
)在文件名中。因此您可以确保它是同一个文件。在向用户显示时,您可以跳过
用户id
/
文档id
和timesta