如何通过名称

问题描述:

,使文件上传区分大小写的代码,所以我有一个以上的要上传的图片,每一个是在我的MySQL表的新行:如何通过名称

我使用的名称为文件输入验证码= “个人资料”

if (isset($_FILES['profile']) === true) { 
if (empty($_FILES['profile']['name']) === true) { 
    echo 'Please choose a file!'; 
}else { 
    $allowed= array('jpg', 'jpeg', 'png')  
    $file_name = $_FILES['profile']['name']; 
    $file_exts = explode('.', $file_name); 
    $file_extn = strtolower(end($file_exts)); 
    $file_temp = $_FILES['profile']['tmp_name']; 
    if (in_array($file_extn, $allowed) === true) { 
     change_image($session_user_id, 1, $file_temp, $file_extn); 
     header('Location: galery.php'); 
     exit(); 
    }else { 
     echo 'Incorrect file type . allowed files are : '; 
     echo implode(", ", $allowed); 

(change_image)功能使得这个MySQL查询

$sql = "UPDATE `art_$id` SET `path` = \"" . $file_path . "\" WHERE `row` = " . (int)$row; 

但我要重复的profil1这个代码,profil2 ...并相应地改变行(例如:profil4将改变第4行),而不必为每个文件='名称'重复此代码。

我该怎么办呢?

+0

你想通过这些脚本多次上传? –

+0

在您的html中使用输入名称类似于:name =“files []”。这意味着这是一个多文件上传。然后你可以在你的php脚本中通过你的$ _FILES ['files']进行foreach,并且对每个文件执行这个工作 –

+0

你可以添加代码中的'change_image'函数 – Mitul

不管你的表格有“多少个字段作为文件和它们被命名的?” 。下面的代码上传到一个..Check它

$rowid=1; 
    foreach($_FILES as $key=>$image_uploaded) 
    { 
    if (isset($image_uploaded[$key]) === true) { 
    if (empty($image_uploaded[$key]['name']) === true) { 
     echo 'Please choose a file!'; 
    }else { 
     $allowed= array('jpg', 'jpeg', 'png')  
     $file_name = $image_uploaded[$key]['name']; 
     $file_exts = explode('.', $file_name); 
     $file_extn = strtolower(end($file_exts)); 
     $file_temp = $image_uploaded[$key]['tmp_name']; 
     if (in_array($file_extn, $allowed) === true) { 
      change_image($session_user_id, $rowid++, $file_temp, $file_extn); 
      //change as you need 
      header('Location: galery.php'); 
      exit(); 
     }else { 
      echo 'Incorrect file type . allowed files are : '; 
      echo implode(", ", $allowed); 
    } 

谢谢您的回答一个,因为我有一个特定于每个表单提交按钮,不惯于在一次我用这个代码来验证一切形式的:

for ($row = 1; $row <= 9; $row++) { 
if (isset($_FILES["profile" . $row]) === true) { 
if (empty($_FILES["profile" . $row]['name']) === true) { 
    echo 'Please choose a file!'; 
}else { 
    $allowed= array('jpg', 'jpeg', 'png'); 

    $file_name = $_FILES["profile" . $row]['name']; 
    $file_exts = explode('.', $file_name); 
    $file_extn = strtolower(end($file_exts)); 
    $file_temp = $_FILES["profile" . $row]['tmp_name']; 

    if (in_array($file_extn, $allowed) === true) { 
     change_image($session_user_id, $row, $file_temp, $file_extn); 
     //header('Location: galery.php'); 
     //exit(); 
    }else { 
     echo 'Incorrect file type . allowed files are : '; 
     echo implode(", ", $allowed); 

      } 



} 

} 
} 

而对于文件输入我使用名称= “配置文件1”,名字= “PROFILE2”,...,名字= “profile9”(对于这种情况下)。

下面是将在图像文件名末尾添加1,2,3的代码 波纹管功能将检查文件是否存在于目录中并返回新文件名现在您可以使用change_image函数之前的功能呼叫并获取新文件名并在change_image中传递新名称以进行保存。

function getFileName($fileName, $file_extn){ 
    $fileNameWithoutExt = pathinfo($fileName, PATHINFO_FILENAME); 
    $i = 1; 
    while(!file_exists('image/art/' . $fileName)){ 
      $fileName = $fileNameWithoutExt . $i . "." . $file_extn; 
      $i++; 
    } 
    return $fileName; 
}