現在、配列を使用して複数の個別ファイルをフォルダに保存できます。今度は、フォルダからデータベースに個々のファイルパスを追加したいと思います。配列をデータベースにアップロードするファイルのパス
フォルダにアップロードされた各ファイルの個々のパスはどのように取得できますか?
そこから個別のパスをデータベースに挿入する方法はありますか?
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<p><input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>
<p><input type="file" name="file_array[]"></p>
<input type="submit" value="Upload all files">
</form>
</body>
</html>
PHP:
<?php
if(isset($_FILES['file_array'])){
$name_array = $_FILES['file_array']['name'];
$tmp_name_array = $_FILES['file_array']['tmp_name'];
$type_array = $_FILES['file_array']['type'];
$size_array = $_FILES['file_array']['size'];
$error_array = $_FILES['file_array']['error'];
\t
\t $imageFileType = pathinfo($path,PATHINFO_EXTENSION);
\t $path = 'uploads/' . $_FILES['my-file']['name'];
\t
for($i = 0; $i < count($tmp_name_array); $i++){
if(move_uploaded_file($tmp_name_array[$i], "uploads/".$name_array[$i])){
echo $name_array[$i]." upload is complete<br>";
} else {
echo "move_uploaded_file function failed for ".$name_array[$i]."<br>";
}
}
}
$conn_info = "host=d port= dbname= user= password=";
$dbconn = pg_connect($conn_info)
or die('could not connect:' . pg_last_error());
echo"<br/>sucessful connection";
$query = "INSERT INTO photo2 (path) VALUES ('".$path."') ;";
$result = pg_query($dbconn, $query);
if (!$result) {
$errormessage = pg_last_error();
echo "<br/> error with query: " . $errormessage;
exit();
}
echo "<br/> file uploaded to PostgreSQL";
pg_close();
?>
パスを追加し、ループのためにクエリを挿入します。 –
私には解決策があります。コードの配置を変更するだけで済みます。最初に$ conn_info変数を設定してから、forループ内でクエリを実行してください – Jayanta
もう1つのことは、あなたのパスにファイル拡張子を設定していません – Jayanta