• ベストアンサー

htmlでユーザーが画像を貼り付けられるか

htmlでユーザーがテキストを入力するフィールドと同様に、自由に画像を貼り付けられるフィールドを定義することができるか。 できるとしたら、どういうhtmlを書けばいいか。 またその貼り付けた画像をMySQLのmediumblobフィールドに保存する場合、どういうphpコードを書けばいいか、を教えてほしい。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>自由に画像を貼り付けられるフィールド WYSWYGエディタを組み込めばいいと思います(不要な機能はOFFにしてしまえばいい)。 http://engineer.blog.lancers.jp/2010/11/wisiwyg_best_3/ 私はCKEditor+KCFinderで画像アップロード&貼付けやってます。画像ファイルを別ディレクトリ(表示用)に移し替え(&img要素のsrc属性を書き替え)るだけしかやっていませんがww MySQLに格納するとなると、POSTされたhtmlソースからimg要素のsrc属性を切り出して当該ファイルを読込んで格納+src属性を書き替えということになると思います。 どのWISWIGエディタを使うかでPOSTされるhtmlソースが微妙に違うので、エディタの選定や調査にある程度の手間暇をかけないといけません。

toshi_2000
質問者

お礼

回答ありがとうございます。そういう方法もあるのですね。

関連するQ&A

  • mysqlに保存した画像の表示がうまくいかない

    phpとmysqlで検索システムを作っています。 今回、mysqlにテキストデータと一緒に画像も保存し検索結果を表示する時に画像も一緒に表示されるようにしたいと考えています。 ひとまずテキストデータは問題なく保存、検索、表示ともに正常に動作していますが、画像がどうしてもうまく表示されません。 DB内を確認してみると、保存はきちんとされているようなのですが。 わかる方がいらっしゃいましたら、アドバイスをいただけないでしょうか? 以下にコードの内容を記載します。テキストデータは正常に動作するので、画像の表示に関する部分だけ記載させて頂きます。 ※検索結果の該当フィールドのidをキーとして渡して、該当するidの画像(DB内のimage1)を表示する。 よろしくお願いします。 【mysqlテーブル】 create table entries ( id int not null auto_increment primary key, name varchar(255), address varchar(255), image1 MEDIUMBLOB NOT NULL, image2 MEDIUMBLOB NOT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 【result.php】 //画像表示箇所 <?php echo '<img src="get_image.php?id=' . $row['id'] . '">' ?> 【get_image.php】 <?php $id = $_GET['id']; header('Content-Type: image/jpg'); echo $row['image1']; ?>

    • ベストアンサー
    • PHP
  • Excel上の画像をblob形式で保存したい

    Excelシート上に貼り付けている画像をMySQLのmediumblobフィールドに格納したいが、そのvbaサンプルプログラムを教えてほしい。

  • PHPでMySQLのMEDIUMBLOB型のデータを取り出す

    初めまして、宜しくお願いします。 現在ユーザ登録の管理をするデータベースを扱っています。 言語はPHP4と、MySQLを使用しています。 そのデータベースには、アイコン画像、登録者名、性別、 掲示板発言回数などのユーザー情報が保存されており、 データ型[MEDIUMBLOB]にまとめて保存されているようです。 (データベースは私が作成したものではいのですが) なのでそこから、それらの情報を取り出したいのですが、 [MEDIUMBLOB]型のデータの取り出し方が解らず困っています。 具体的にはデータだけならば取り出す事はできるものの、 バイナリ形式なので当然文字化けしているという感じです。 勉強不足ということは百も承知ですが、検索しても それらしい情報を見つけることもできず、ご存じの方が おられないかとこちらにて質問をさせていただきました。 お解りの方がおられましたらどうかアドバイスを 宜しくお願い致します。 -------------------------- // 以下のようなテーブルにデータが格納されていた場合 CREATE TABLE sample(   test_i INT,   test_s VARCHAR(64),   medium MEDIUMBLOB ); // 格納されているデータを取り出す $res = mysql_query( "SELECT test_i, medium FROM sample;" ); while( $list = mysql_fetch_assoc( $res ) ){   echo "$list['test_i']<br>";  //echo "$list['medium']<br>"; } 上記の通りをMEDIUMBLOB型ですると文字化けします。

    • ベストアンサー
    • PHP
  • MySQLへの画像の保存→表示で画像が崩れる

    PHP+MySQLで、画像(jpg)の保存、表示を試みていますが、 どうもうまくいかないので、お知恵をお貸しください。 MySQLのMEDIUMBLOBに画像を保存すること自体はうまく行っているように見えるのですが、 取り出して表示をする際に、画像の一部が崩れてしまいます。 <環境> MySQL4.0.26 PHP 5.0.4 500バイト程度の小さな画像だと崩れませんが、 大きな画像(1.6k程度)だと、 画像が崩れます。 コードを記述したいのですが、文字数制限があるので、 一部省略/抜粋で掲載します <アップロード/保存> $fp = fopen($_FILES["file"]["tmp_name"],"rb"); $imgdat = fread($fp,filesize($_FILES["file"]["tmp_name"])); fclose($fp); $imgdat = base64_encode($imgdat); $imgdat = addslashes($imgdat); //$imgdat = mysql_escape_string($imgdat); $sql = "insert into test_img(imgfile)values('".$imgdat."')"; (以下略) <表示> $sql = "select * from test_img order by no desc limit 1"; $result = mysql_query($sql,$dbid); $rows = mysql_fetch_array($result); $imgdat = stripslashes($imgdat); $imgdat = base64_decode($rows["imgfile"]); header('Content-Type: image/jpeg'); echo stripslashes($imgdat); (以下略) 保存時にaddslashes 復帰時にstripslashes してもうまくいきませんでした。 他の掲示板で調べた、base64エンコード/デコードを試みましたが、 これも結果は同じです。 どうかよろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • MySQLのユーザー設定について

    よろしくお願いします。 環境は、 Win XP home MySQL バージョンは4.024です。 「PHP+MySQL Web制作ガイド」という本に沿って、勉強を始めたばかりです。 Mysqlをインストールし、rootユーザーのパスワード設定で、 mysql> UPDATE mysql.user SET Password=PASSWORD('12345')WHERE User ->='root' とコマンドプロンプトで入力するのですが、 ERROR 1044: Access denied for user; '@licalhost' to database 'mysql' とエラーが返されてしまいます。 何度もやってみましたが、同様です。 winMySQLAdminを起動させた際、パスワードの入力を求められた場合、 本に「管理ツール用の任意のパスワードを入力して先に進みます」とあったので、その通りにしたのですが、これは関係するのでしょうか? リファレンスhttp://dev.mysql.com/doc/mysql/ja/access-denied.htmlも見てみたのですが、さっぱりわからず困っています。 どうぞ、アドバイスをよろしくお願いします。

    • ベストアンサー
    • MySQL
  • phpからmysqlにデータ保存(テキストと画像)

    登録フォームを作成し、PHPにてMYSQLに情報を保存しようとしています。 テキストデータは問題なく保存できるのですが、画像データが保存できません。 いろいろ調べているのですが、テキストデータと画像データをいっぺんに保存する方法がわかりません。 なんとなくはどこらへんが問題なのかということはわかるのですが、具体的にどうすればいいかがわかりません。 アドバイスをご教示いただけないでしょうか。よろしくお願いします。 【mysqlテーブル】 create table entries ( id int not null auto_increment primary key, name varchar(255), address varchar(255), image1 MEDIUMBLOB NOT NULL, image1 MEDIUMBLOB NOT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 【touroku.php】 <?php error_reporting(E_ALL & ~E_NOTICE); if ($_SERVER['REQUEST_METHOD']=="POST") { $name = $_POST['name']; $email = $_POST['email']; $image1 = $_POST['image1']; $image2 = $_POST['image2']; $error = array(); // エラー処理 if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error['email'] = 'メールアドレスが正しくありません'; } if ($email == '') { $error['email'] = 'メールアドレスが入力されていません'; } // エラーがなかった場合 if (empty($error)) { // DBにデータを入れる mysql_connect("localhost", "ユーザー名", "パスワード") or die("can't connect to DB: ".mysql_error()); mysql_select_db("DB名") or die("can't select to DB: ".mysql_error()); $q = sprintf("insert into entries (name, email, image1, image2) values ('%s', '%s', '%s', '%s')", mysql_real_escape_string($name), mysql_real_escape_string($email), mysql_real_escape_string($image1), mysql_real_escape_string($image2)); mysql_query($q) or die("can't run query: ".mysql_error()); // 登録完了画面に飛ぶ header("Location: http://localhost/.../thanks.html"); } } ?> <!DOCTYPE html> <html lang="ja"> <meta charset="UTF-8"> <title>登録フォーム</title> <head> </head> <body> <form method="post" action=""> <p>名前:</p> <input type="text" name="name" value="<?php echo htmlspecialchars($name); ?>"> <?php if ($error['name']) echo $error['name']; ?> <p>メールアドレス</p> <input type="text" name="email" value="<?php echo htmlspecialchars($email); ?>"> <?php if ($error['email']) echo $error['email']; ?> <br> <p>画像1:</p> <input type="file" name="image1"> <p>画像2:</p> <input type="file" name="image2"> <p><input type="submit" value="登録"></p> </form> </body> </html>

    • ベストアンサー
    • PHP
  • エクセル2007のユーザー定義について教えてください。

    エクセル2007のユーザー定義について教えてください。 A1のセルにX001のようなコードが入力されている場合,RIGHT関数を使って右端の1を抽出し,この1に「日目」などの文字を結合して「1日目」と表示したいですがセルのユーザー定義で可能でしょうか。=RIGHT(A1,1)&"日目"のようにやればできますが,セルのユーザー定義でやりたいと思っています。

  • 文字コードエスケープ処理について

    現在MYSQLとPHPを使ってデータベースを構築してます。 XSSやSQLインジェクションはフォームなどに悪意のユーザがJavascriptのコードを入力するんですよね? ちょっとテストで検索フォームに Javascriptコード を入力してみたんですが何も起こりませんでした。これは処理がされていると思って良いんでしょうか?URLは画像のようになりました。

    • 締切済み
    • PHP
  • MySQLに画像を保存したい

    閲覧、ありがとうございます。 MySQLに画像を保存しようとして苦戦しています。 multipart/form-dataオプションをつけてpostし、phpでMySQLに入れようとしています。 header("Content-Type: image/jpeg"); $data = file_get_contents($_FILES['photo']['tmp_name']); echo $data; とするとちゃんと画像が表示できるのですが、 $query = mysql_query("insert into img_table (img_field) values $data"); とすると You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' … と怒られてしまいます。 ためしにphpMyAdminから同じデータをアップロードすると$dataの部分が0xff...となっております。 文字コードの問題も考え、addslashesなどつけているのですがやはりアップロードできません。 画像をMySQLに保存するにはどのようにしたらよろしいでしょうか? よろしくお願いします。

  • PHPでMySQLのユーザを追加したい。

    表題の件で頭を悩ませています。 Web上のフォームで入力したユーザ名を、 そのままMySQLのユーザ名として登録できるような物を作りたいのですが、 PHPにはMySQLのユーザを追加できるような関数はありません。 phpMyadminのように管理者がユーザを追加するのではなく、 一般の人間が希望のユーザ名をフォームに入力して「追加」などのボタンを押すと、 その名前をMySQLのユーザ名として登録したいのです。 何か良い方法は無いでしょうか? お知恵をお貸し下さい。

    • ベストアンサー
    • PHP

専門家に質問してみよう