如何修正图片名称

时间:2019-09-29 18:34:18

标签: php

此脚本的PHP代码为:

if(isset($_POST['submit'])){
// Count total files
$countfiles = count($_FILES['files']['name']);
$pdate = date("Y-m-d H:i:s");
$userID = $_SESSION['memberID'];
// Prepared statement
$query = "INSERT INTO images (user,post_date,name,image) VALUES('$userID','$pdate',?,?)";  
$statement = $conn->prepare($query);
// Loop all files
for($i=0;$i<$countfiles;$i++){
// File name
$filename = explode('.',$_FILES['files']['name'][$i]);  
// Get extension
$ext = strtolower(end($filename));
// Valid image extension
$valid_ext = array("png","jpeg","jpg");
if(in_array($ext, $valid_ext)){
// Upload file
if(move_uploaded_file($_FILES['files']['tmp_name'][$i],'upload/'.$filename)){  
// Execute query
$statement->execute(array($filename,'upload/'.$filename));
}    
}      
}
header('Location: view_images');
}
}

此脚本的HTML代码为:

<form method='post' action='' enctype='multipart/form-data'>
<?php if(isset($errors)){
echo $errors;
}?>
<div class="profile-edit-container add-list-container">
<div class="profile-edit-header fl-wrap">
<h4>Post images</h4>
</div>
<div class="custom-form">
<div class="row">
<div class="col-md-4">
<div class="act-widget fl-wrap">
<div class="act-widget-header">
<div class="add-list-media-wrap fuzone">
<div class="fu-text">
<span><i class="fa fa-picture-o"></i> Add images</span>
</div>
<input type="file" name="files[]" id="imgInput2" class="upload" multiple>
</div>
</div>
</div>
</div>
<input type="submit" name="submit" value="Add" class="btn big-btn color-bg flat-btn">
</div>
</div>
</form>

当我上传示例3个不同的图像,并且每个图像具有不同的名称(car1.jpg,car3.jpg,car4.jpg)时,当我完成上传过程时,每个图像到数据库中的名称都相同(Array)。那是问题所在,因为我想存储原始图像名称或使用此代码. substr(md5(time()), 0, 10).生成,但即时通讯卡住了,无法生成。

1 个答案:

答案 0 :(得分:0)

这是您需要的一段代码:

$filename = explode('.',$_FILES['files']['name'][$i]);  
// Get extension
$ext = strtolower(end($filename));
// Valid image extension
$valid_ext = array("png","jpeg","jpg");
if(in_array($ext, $valid_ext)){
    // generate a filename
    $filename = substr(md5(time()), 0, 10) . '.' . $ext;
    // Upload file
    if(move_uploaded_file($_FILES['files']['tmp_name'][$i],'upload/'.$filename)){  
        // Execute query
        $statement->execute(array($filename,'upload/'.$filename));
    }    
}