【发布时间】:2014-11-29 13:31:38
【问题描述】:
我正在从单个输入上传多张图片
<input type="file" name="files[]" multiple id="files" class="hidde fileInpu"/>
我编写了以下代码来阅读图片上传的详细信息
完整的处理代码
$newname = md5(rand() * time());
$file1 = isset($_FILES['files']['name'][0]) ? $_FILES['files']['name'][0] : null;
$file2 = isset($_FILES['files']['name'][1]) ? $_FILES['files']['name'][1] : null;
$file3 = isset($_FILES['files']['name'][2]) ? $_FILES['files']['name'][2] : null;
$file4 = isset($_FILES['files']['name'][3]) ? $_FILES['files']['name'][3] : null;
$file5 = isset($_FILES['files']['name'][4]) ? $_FILES['files']['name'][4] : null;
if (isset($_FILES['files'])) {
$errors = array();
foreach ($_FILES['files']['tmp_name'] as $key => $tmp_name) {
$file_name = $key . $_FILES['files']['name'][$key];
$file_size = $_FILES['files']['size'][$key];
$file_tmp = $_FILES['files']['tmp_name'][$key];
$file_type = $_FILES['files']['name'][$key];
$extarray = explode('.', $file_type);
$ext = end($extarray);
// png , jpg, jpeg
if ($file_size > 9097152000) {
$errors[] = 'File size must be less than 2 MB';
}
$desired_dir = "user_data/";
if (empty($errors) == true) {
if (is_dir($desired_dir) == false) {
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if (is_dir("$desired_dir/" . $file_name) == false) {
move_uploaded_file($file_tmp, "$desired_dir/" . $newname . $file_name);
} else { // rename the file if another one exist
$new_dir = "$desired_dir/" . $newname . $file_name;
rename($file_tmp, $new_dir);
}
} else {
print_r($errors);
}
}
if (empty($error)) {
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
echo "FILE : $newname.$ext<br>";
}
我需要在echo 中显示每个文件的文件扩展名,并且我需要跳过文件名插入我需要存储的文件名$key
上面的代码读取图像name,size,file type, tmp name现在我的问题是
$file_type = $_FILES['files']['type'][$key];
此代码提供的文件类型类似于image/jpeg 但我需要获取扩展名 .jpeg
如何在 .jpeg 中获取扩展名
并在阅读此主题后使用此方法PHP file extension issue$ext = pathinfo($file_name, PATHINFO_EXTENSION)[$key]; 我收到错误所有文件都属于同一类型我如何读取每个文件扩展名
【问题讨论】:
-
为什么要取消对
pathinfo()的引用?直接使用它:$ext = pathinfo($_FILES['files']['name'][$key], PATHINFO_EXTENSION) -
前5行的目的是什么??
-
@Ghost 所有图片都显示为
.jpg甚至添加了.png -
@Cheery 以上 5 行我用于在 SQL 表行中保存文件名
-
@sanojoverflow 为什么不在你拥有的循环中准备一个名称数组?
标签: php image image-processing