PHPアップロードファイルコード練習2(重複記事)
16983 ワード
フォーム:
関数セクション:
操作:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> </title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
<input type="file" name="filename[]" multiple="multiple" accept="image/jpeg"><br/><br/>
<input type="submit" value=" ">
</form>
</body>
</html>
関数セクション:
<?php
//
function getFiles(){
$i=0;
foreach ($_FILES as $file) {
if (is_array($file['name'])) {
foreach ($file['name'] as $key => $value) {
$files[$i]['name']=$file['name'][$key];
$files[$i]['type']=$file['type'][$key];
$files[$i]['tmp_name']=$file['tmp_name'][$key];
$files[$i]['size']=$file['size'][$key];
$files[$i]['error']=$file['error'][$key];
$i++;
}
}elseif (is_string($file['name'])) {
$files[$i]=$file;
$i++;
# code...
}
}
return $files;
}
//
function uploadFiles($files){
$res=array();
//
if($files['error']===UPLOAD_ERR_OK){
//
$maxsize=2097152;
if($files['size']>$maxsize){
$res['msg']=$files['name'].' ';
}
//
$ext=strtolower(pathinfo($files['name'],PATHINFO_EXTENSION));
$extarray=['jpeg','jpg'];
if(!in_array($ext, $extarray)){
$res['msg']=$files['name'].' ';
# code...
}
//
$flag=true;
if($flag){
if(@!getimagesize($files['tmp_name'])){
$res['msg']=$files['name'].' ';
}
}
// HTTP POST ;
if(!is_uploaded_file($files['tmp_name'])){
$res['msg']=$files['name'].' HTTPPoSt ';
}
if($res) return $res;
//
$path='uploads';
if(!file_exists($path)){
mkdir($path,0777,true);
chmod($path,0777);
}
//
$newname=md5(uniqid(microtime(true),true));
$destination=$path.'/'.$newname.'.'.$ext;
if(!move_uploaded_file($files['tmp_name'], $destination)){
$res['msg']=$files['name'].' ';
}
$res['msg']=$files['name'].' ';
$res['dest']=$destination;
return $res;
}else{
switch ($files['error']) {
case 1:
$res['msg']=$files['name'].' ';
break;
case 2:
$res['msg']=$files['name'].' ';
# code...
break;
case 3:
$res['msg']=$files['name'].' ';
# code...
break;
case 4:
$res['msg']=' ';
# code...
break;
case 6:
$res['msg']=' ';
# code...
break;
case 7:
$res['msg']=' ';
# code...
break;
}
return $res;
}
}
操作:
<?php
include('uploads_func.php');
$files=getFiles();
foreach ($files as $value) {
$res=uploadFiles($value);
echo $res['msg']."<br><br>";
# code...
}