php 将文件重命名为 Array


php renamming files to Array

以下多个上传代码将所有文件(图像(重命名为类似 56c2ce2498220Array
*请忽略代码中的所有混乱,我不是专业人士。

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
$username = $_POST['user_name'];
$today = date('Y-m-d H:i:s');
$pic = $_FILES["image"]["name"];
// Loop $_FILES to exeicute all files
foreach ($_FILES['image']['name'] as $f => $name) {
    if ($_FILES['image']['error'][$f] == 4) {
        continue; // Skip file if any error found
    }
    if ($_FILES['image']['error'][$f] == 0) {              
        if ($_FILES['image']['size'][$f] > $max_file_size) {
            $msg[] = "$name is too large!.";
            continue; // Skip large files
        }
        elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
            $msg[] = "$name is not a valid format";
            continue; // Skip invalid file formats
        }
        else{ // No error found! Move uploaded files
            $pic = uniqid().$_FILES["image"]["name"];
        if(move_uploaded_file($_FILES["image"]["tmp_name"], $path . $pic));
        //if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name))
        // Number of successfully uploaded file
            $query ="insert into `all_tips` (`id_no`,`user_name`,`image`,`status`,`date`) values ('71','$username' ,'$pic','9','$today')";
if(mysql_query($query))      
            {                   
                $msg = "<span style='"color: green;margin-left:25px;margin-top:25px;'">Image Inserted Successfully...!</span>";
                }
            else        
            {$msg = "Error in insertion.........".mysql_error();    }
        }}}}
?>

我希望将文件重命名为:56c2c982de35djoinus2.jpg即uniqid PLUS 它们的原始名称 PLUS .format我已经尝试了许多组合,但我无法获得正确的名称。

另外,供参考:多张图片上传无法正常工作

我认为,在上传时,您正在使用: <input type="file" name="image[]" id="image">

[]将以数组形式提交。由于您已经在使用 foreach,因此$name将具有文件名的值。

所以,$pic = uniqid().$name;会起作用!