以下PHP文件脚本只上传一个文件,尽管它应该发送多个文件。无法理解它在哪里打破。使用foreach
尝试但无济于事。
我做了一个var_dump
,他们显示了正在发送的文件数量。
HTML
<form id="fileupload" method="POST" enctype="multipart/form-data">
<input type="file" name="uploadfile[]" multiple id="uploadfile" />
</form>
PHP
<?php
require_once 'config.php';
############ Edit settings ##############
$UploadDirectory = './storage/';
#########################################
if(!isset($_FILES["uploadfile"])) {
die('Something wrong with upload! Is "upload_max_filesize" set correctly?');
}
//check if this is an ajax request
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){
die();
}
// Total number of files to be uploaded
$total_files = count($_FILES['uploadfile']['name']);
//check if there is at least 1 file
if($total_files < 1) {
die();
}
for($i=0; $i<$total_files; $i++) {
//Is file size is less than allowed size.
if ($_FILES["uploadfile"]["size"][$i] > 29000000) {
die("File size is too big!");
}
$allowedTypes = array('gif', 'png', 'jpeg', 'jpg', 'pdf', 'xls', 'xlsx', 'doc', 'docx', 'ppt', 'pptx', 'mp3', 'mp4', 'rar', 'zip', 'txt');
$FileNameFull = strtolower($_FILES['uploadfile']['name'][$i]);
$FileNameShort = pathinfo($FileNameFull, PATHINFO_FILENAME);
$FileExt = pathinfo($FileNameFull, PATHINFO_EXTENSION);
if(!in_array($FileExt, $allowedTypes)) {
die('Unsupported File format!');
}
$FileCode = rand(0, 9999999999); //Random number to be used to rename actual filename
$NewFileName = $FileCode.'.'.$FileExt; //new file name
if(move_uploaded_file($_FILES['uploadfile']['tmp_name'][$i], $UploadDirectory.$NewFileName )) {
// Save the file details to database
//$query = $dbh->prepare("INSERT INTO uploads(file_name, file_code, file_ext, timestamps) VALUES (:file_name, :file_code, :file_ext, :timestamps)");
/*$query->execute(array(
":file_name" => $FileNameShort,
":file_code" => $FileCode,
":file_ext" => $FileExt,
":timestamps" => round(microtime(true) * 1000)
));*/
die('Success! File Uploaded.');
}
else{
die('error uploading File!');
}
}
答案 0 :(得分:3)
我会给你一个小例子:
<强> HTML:强>
<input name="uploadfile[]" type="file" multiple="multiple" />
<强> PHP:强>
$totalImage = count($_FILES['uploadfile']['name']);
for($i=0; $i<$totalImage; $i++) {
$temporaryPathOfImage = $_FILES['uploadfile']['tmp_name'][$i];
if ($temporaryPathOfImage != ""){
$dirPath = "./storage/" . $_FILES['uploadfile']['name'][$i];
if(move_uploaded_file($temporaryPathOfImage, $dirPath)) {
//Code Here
}
}
}
<强>问题:强>
die('Success! File Uploaded.');
删除此行,以便获得该循环中的所有图像。