此脚本的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).
生成,但即时通讯卡住了,无法生成。
答案 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));
}
}