PHP에서 여러 파일 업로드
-
multiple
태그, 양식의input
속성의name
태그의 배열 및move_uploaded_file()
함수를 사용하여 PHP에서 여러 파일 업로드 - PDO를 사용하여 PHP의 데이터베이스에 여러 파일 업로드
![PHP에서 여러 파일 업로드](/img/PHP/feature-image---php-multiple-file-upload.webp)
input
태그의name
속성을 배열로 지정하고multiple
속성을 사용하여 PHP에서 여러 파일을 업로드하는 방법을 소개합니다. form
태그의enctype
속성 값은multipart/form-data
입니다. 이 방법은 데이터베이스 연결에mysqli
를 사용합니다.
또한 PDO를 사용하여 PHP에서 여러 파일을 업로드하는 또 다른 방법을 소개합니다. 폴더에 파일을 업로드 한 다음 데이터베이스에 업로드합니다. 이 방법은 구현 측면에서 첫 번째 방법과 유사합니다.
multiple
태그, 양식의input
속성의name
태그의 배열 및move_uploaded_file()
함수를 사용하여 PHP에서 여러 파일 업로드
input
태그의name
속성을 배열로 지정하여 여러 파일을 업로드 할 수 있습니다. input
태그는 업로드하는 동안 여러 파일을 선택할 수 있도록multiple
키워드를 사용합니다. 양식을 제출하는 동안 양식 데이터를 인코딩하는 방법을 지정하기 위해enctype
속성에 대한 인코딩multipart/form-data
를 작성할 수 있습니다. mysqli
를 사용하여 데이터베이스에 연결할 수 있습니다. move_uploaded_file()
함수는 업로드 된 파일을 서버의 임시 위치에서 원하는 위치로 이동합니다. INSERT
SQL 문을 사용하여 선택한 파일을 데이터베이스에 업로드 할 수 있습니다.
예를 들어,mysqli
개체로 데이터베이스 연결을 설정하고 값을$db
변수에 할당합니다. POST
메소드와 인코딩 유형을multipart/form-data
로 사용하여 HTML 양식을 만들어 파일을 업로드합니다. input
태그의type
속성을file
로 지정하고name
속성을file
로 지정합니다. input
태그를 닫기 전에multiple
속성을 작성하는 것을 잊지 마십시오. 양식을 제출하려면input
태그를 작성하십시오.
isset()
함수를 사용하여 양식이 제출되었는지 확인하십시오. count
기능을 사용하여 업로드 된 파일 수를 계산합니다. $_FILES['file']['name']
를count
함수에 대한 매개 변수로 사용하여 변수$countfiles
에 할당합니다. for 루프를 사용하여 업로드 된 파일을 반복합니다. 루프 내에서$filename
변수를 만들고$_FILES['file']['name'][$i]
로 할당합니다. 루트 디렉토리에upload
라는 폴더를 만듭니다. move_upload_file()
함수를 사용하여 파일을 이동하십시오. 임시 이름을 가진 파일 인 첫 번째 매개 변수로$_FILES['file']['tmp_name'][$i]
를 사용하십시오. 업로드 된 파일을 저장할 위치와 파일 이름 인 두 번째 매개 변수로'upload/'.$filename
을 사용하십시오.
SQL INSERT
쿼리를 실행하여 데이터베이스에 파일을 삽입합니다. $filename
변수를id
및name
으로 데이터베이스의fileup
테이블에 삽입합니다. $db
변수를 사용하여$sql
변수를 매개 변수로 사용하여query()
함수를 호출하여 쿼리를 실행합니다.
예제 코드 :
# php 7.*
<?php
if(isset($_POST['submit'])){
$countfiles = count($_FILES['file']['name']);
for($i=0;$i<$countfiles;$i++){
$filename = $_FILES['file']['name'][$i];
$sql = "INSERT INTO fileup(id,name) VALUES ('$filename','$filename')";
$db->query($sql);
move_uploaded_file($_FILES['file']['tmp_name'][$i],'upload/'.$filename);
}
}
?>
<form method='post' action='' enctype='multipart/form-data'>
<input type="file" name="file[]" id="file" multiple>
<input type='submit' name='submit' value='Upload'>
</form>
?>
출력:
SELECT * FROM `fileup`
id name
1 cfc.jpg
2 hills.jpg
PDO를 사용하여 PHP의 데이터베이스에 여러 파일 업로드
PDO를 사용하여 PHP에서 여러 파일을 업로드 할 수 있습니다. PDO 개체를 사용하여 데이터베이스에 대한 연결을 만들 수 있습니다. 준비된 명령문을 사용하여 파일을 데이터베이스에 삽입합니다. 이 방법은 데이터베이스 연결 측면에서 첫 번째 방법과 만 다릅니다. 이 방법에도 정확한 HTML 형식을 사용할 수 있습니다. 폴더와 데이터베이스에 두 개의 jpg 파일을 업로드하여이 방법을 시연합니다.
예를 들어,new
키워드를 사용하여 PDO 데이터베이스 연결을 설정하고$conn
변수에 할당합니다. isset()
함수를 사용하여 양식이 제출되었는지 확인하십시오. 위와 같이count
기능을 사용하여 파일을 계산합니다. 그런 다음$query
변수에 쿼리를 작성하여id
및name
을 삽입합니다. 자리 표시 자 작성?
쿼리의 값에 대해 prepare()
함수를 사용하여 쿼리를 준비하고$statement
변수에 값을 할당합니다. move_uploaded_file()
함수를 사용하여 각 파일을uplaod
폴더로 이동합니다. execute()
함수를 사용하여 쿼리를 실행합니다. 함수의 매개 변수로$filename
및$target_file
이있는 배열을 제공하십시오.
아래 예에서 사용자는 두 개의 jpg 파일을 업로드합니다. 먼저 파일이upload
폴더에 업로드 된 다음 데이터베이스에 업로드됩니다. 데이터베이스에는fileup
테이블이 있으며id
및name
열이 있습니다. move_uploaded_files()
함수에 대한 자세한 내용은 PHP 매뉴얼을 참조하십시오.
예제 코드 :
#php 7.x
<?php
$conn = new PDO("mysql:host=$server;dbname=$dbname","$username","$password");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
if(isset($_POST['submit'])){
$countfiles = count($_FILES['file']['name']);
$query = "INSERT INTO fileup (id, name) VALUES(?,?)";
$statement = $conn->prepare($query);
for($i=0;$i<$countfiles;$i++){
$filename = $_FILES['file']['name'][$i];
$target_file = 'upload/'.$filename;
move_uploaded_file($_FILES['file']['tmp_name'][$i],$target_file);
$statement->execute(array($filename,$target_file));
}
}
?>
출력:
SELECT * FROM `fileup`
id name
1 upload/cfc.jpg
2+ upload/count.jpg
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn