Php 上载时调整多个图像的大小
嗨,我试图在上传时调整多个图像的大小,我有调整大小的功能,但它只适用于一个图像,所以请任何人告诉我如何循环多个文件上传Php 上载时调整多个图像的大小,php,image,upload,resize,Php,Image,Upload,Resize,嗨,我试图在上传时调整多个图像的大小,我有调整大小的功能,但它只适用于一个图像,所以请任何人告诉我如何循环多个文件上传 if( $_FILES['image']['size']< $max_file_size ){ // get file extension $ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION)); // $ext = pathinfo($_FILES['files
if( $_FILES['image']['size']< $max_file_size ){
// get file extension
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
// $ext = pathinfo($_FILES['files']['name'][$f], PATHINFO_EXTENSION);
if (in_array($ext, $valid_exts)) {
/* resize image */
foreach ($sizes as $w => $h) {
$files[] = resize($w, $h);
}
} else {
$msg = 'Unsupported file';
}
} else{
$msg = 'Please upload image smaller than 200KB';
}
if($\u文件['image']['size']<$max\u文件大小){
//获取文件扩展名
$ext=strtolower(路径信息($_文件['image']['name'],路径信息扩展名));
//$ext=pathinfo($\u FILES['FILES']['name'][$f],pathinfo\u扩展名);
if(在数组中($ext,$valid\u exts)){
/*调整图像大小*/
foreach($w=>h){
$files[]=调整大小($w,$h);
}
}否则{
$msg='不支持的文件';
}
}否则{
$msg='请上传小于200KB的图像';
}
这未经测试,但可能会给您一个想法。
其工作方式是循环遍历变量$iname
的所有$\u文件,即“image”。我设置它是因为它被多次使用,所以如果你改变它,它会更容易
我创建了一个名为$image
的新变量,它将是该特定图像的变量。我通过循环遍历$\u文件[$iname]
的所有变量来实现这一点。我将$image
变量设置为$key
和新值,该值将是一个数组。我们使用$i
变量引用正确的数组
接下来,我只使用您现有的代码。由于resize()
函数只调用宽度和高度,我不确定这里会发生什么。应传递另一个参数以引用要调整大小的图像,该参数为$image
从我键入的可见代码中,不知道什么是resize()
,此代码是不安全的。您应该检查的不仅仅是文件扩展名,因为它很容易更改。我通常使用exif检查图像标题。我也从不存储用户上传的数据,除非我使用PHP中的GDI函数对其重新编码
希望这能让你开始
$i = 0;
$iname = 'image';
for($i = 0; $i < count($_FILES[$iname]['size']); $i++) {
// Create new Image Array
$image = array();
foreach($_FILES[$iname] as $key => $val) {
$image[$key] = $val[$i];
}
if( $image['size'] < $max_file_size ) {
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (in_array($ext, $valid_exts)) {
foreach ($sizes as $w => $h) {
// How is resize getting the $_FILES?
// Should pass a variable of $image and use it instead
$files[] = resize($w, $h);
}
} else {
$msg = 'Unsupported file';
}
} else{
$msg = 'Please upload image smaller than 200KB';
}
}
$i=0;
$iname='image';
对于($i=0;$i$val){
$image[$key]=$val[$i];
}
如果($image['size']<$max\u file\u size){
$ext=strtolower(路径信息($_文件['image']['name'],路径信息扩展名));
if(在数组中($ext,$valid\u exts)){
foreach($w=>h){
//如何获取$\u文件?
//应该传递$image变量并改用它
$files[]=调整大小($w,$h);
}
}否则{
$msg='不支持的文件';
}
}否则{
$msg='请上传小于200KB的图像';
}
}
看看$\u文件数组的实际外观$_文件['image']['size'][0]将是第一个图像。增加0。我不认为有一个循环很难给出一个好的答案。这就是我得到这个的地方,如果你想看看的话