PHP로 업로드 기능을 만들고 있습니다. 정상적으로 작동합니다. PHP phi ini 파일의 최대 크기가 32MB이기 때문에 그보다 큰 것을 업로드 할 수 없습니다. 그리고 그건 나에게 좋다.업로드 된 여러 파일의 합친 크기 표시
하지만 :
은 내가 이 32메가바이트 이상, 입력 파일에 추가되는 모든 파일의 크기을 결합하면 업로드를 방지합니다.
$(function(){
$('#file').change(function(){
var file=this.files[0]
alert(file.size||file.fileSize)
})
})
을하지만 테스트 할 때 나는 단지 한 파일의 크기를 반환하는 것을 알아 냈다. 입력 필드에 추가 된 모든 파일을 반환하도록이 코드를 어떻게 변경할 수 있습니까? 아니면 다른 방법이 있습니까?
HTML :
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Tutorial</title>
<link rel="stylesheet" type="text/css" href="css/tut.css">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="js/script.js"></script>
</head>
<body>
<form action="tutorial.php" method="POST" enctype="multipart/form-data">
<!--<input type="file" name="myFile"><p>
<input type="submit" value="Upload">
<br/><br/>-->
<input type="file" name="files[]" multiple="multiple" id="file"/><p>
<input type="submit" value="Upload" id="submit" />
</form>
</div>
</body>
</html>
PHP 코드 :
$file_dest = "photos/orig/";
$thumb_dest = "photos/thumbs/";
if(!empty($_FILES['files']['name'][0])){
$files = $_FILES['files'];
$uploaded = array();
$failed = array();
$allowedExt = array('png', 'jpg', 'gif');
foreach($files['name'] as $position => $file_name) {
$file_tmp = $files['tmp_name'][$position];
$file_size = $files['size'][$position];
$file_error = $files['error'][$position];
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
if(in_array($file_ext, $allowedExt)){
if($file_error == 0){
if($file_size <= 20000000){
$file_name_new = uniqid('', true)."_".$file_name;
$file_move = $file_dest.$file_name_new;
if(move_uploaded_file($file_tmp, $file_move)){
$uploaded[$position] = $file_dest;
}else{
$failed[$position] = "[{$file_name}] failed to upload.";
}
}else{
$failed[$position] = "[{$file_name}] is too large.";
}
}else{
$failed[$position] = "[P$file_name}] errored with code {$file_error}";
}
}else{
$failed[$position] = "[{$file_name}] file extension '{$file_ext}' is not allowed.";
}
}
if(!empty($uploaded)){
print_r($uploaded);
}
if(!empty($failed)){
print_r($failed);
}
}else{
echo "No files were added.";
}
(!) 참고 : 코드는 여전히 보안 조치를 추가 할 필요가 아직 완료되지입니다. 그 부족을 무시하십시오.