実現したいこと
mysqlで画像ファイルの共有
前提
画像データをBASE64に変換しているんだけどおそらくファイルの取得がうまくいってないと思う
発生している問題・エラーメッセージ
ファイルが選択されていないのでエラーは起きない
該当のソースコード
index.php
1<?php 2 //送信時の初期設定 3 $pdo = new PDO('mysql:host=""";dbname=""";', '"""', '"""', [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]); 4 $smo = $pdo->prepare("INSERT INTO `value` (`2`) VALUES(:2)"); 5 //データ送信 6 if (isset($_POST["txt"])) { 7 $txt = $_POST["txt"]; 8 $smo = $pdo->prepare("INSERT INTO `value` (`1`) VALUES(:1)"); 9 $params = array(':1' => $txt . "</br>"); 10 $smo->execute($params); 11 header("Location: http://nandemo204.starfree.jp/index.php"); 12 } 13 if (!empty($_FILES['upload_file']) && $_FILES['upload_file']['error'] === UPLOAD_ERR_OK) { 14 echo $_FILES['upload_file']['tmp_name']; 15 $image_path = $_FILES['upload_file']['tmp_name']; 16 $image = imagecreatefromjpeg($image_path); 17 list($width, $height) = getimagesize($image_path); 18 // 新しいサイズを設定 19 $new_width = 500; // 新しい幅 20 $new_height = (int)(500 / $width * $height); // 正しい変数名を使用 21 $resized_image = imagecreatetruecolor($new_width, $new_height); 22 imagecopyresampled($resized_image, $image, 0, 0, 0, 0, $new_width, $new_height, imagesx($image), imagesy($image)); 23 // リサイズされた画像を直接エンコード 24 ob_start(); 25 imagejpeg($resized_image, null, 80); 26 $image_data = ob_get_clean(); 27 // 画像データをBase64エンコード 28 $base64_image = base64_encode($image_data); 29 $params = array(':2' => $base64_image); 30 $smo->execute($params); 31 } else { 32 echo "ファイルアップロードエラー: " . $_FILES['upload_file']['error']; 33 } 34 //データ取得 35 $sql = "SELECT * FROM value"; 36 $sma = $pdo->query($sql); 37 $data = $sma->fetchAll(PDO::FETCH_ASSOC); 38 foreach ($data as $row) { 39 echo $row['1']; 40 } 41 //画像データ取得 42 $sql = "SELECT * FROM value"; 43 $sma = $pdo->query($sql); 44 $data = $sma->fetchAll(PDO::FETCH_ASSOC); 45 foreach ($data as $row) { 46 echo '<img src="data:image/png;base64,' . $row['2'] . '" alt="Base64 Image">'; 47 } 48?>
試したこと
ファイルが選択されたときに反応するようにifを使ってもうまくいかなかったのでおそらくうまくpostされていない
補足情報(FW/ツールのバージョンなど)
スターサーバーフリー設定は以下
セッション設定
session.auto_start Off
session.use_cookies On
session.use_only_cookies On
session.use_trans_sid Off
session.name PHPSESSID
session.cookie_lifetime 0
session.cookie_path /
session.cookie_domain
文字コード設定
mbstring.language Japanese
mbstring.internal_encoding UTF-8
mbstring.http_input pass
mbstring.http_output pass
mbstring.encoding_translation Off
mbstring.detect_order auto
mbstring.substitute_character none
その他の設定
safe_mode
max_execution_time 180
max_input_time -1
memory_limit 1G
post_max_size 1G
upload_max_filesize 1G
register_globals
magic_quotes_gpc
file_uploads On
allow_url_fopen On
allow_url_include Off
バージョンphp:7.4.33

回答1件
あなたの回答
tips
プレビュー