teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

IE対策

2016/10/13 16:09

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  - まず設計として,**表示する直前にBase64エンコードし**,それ以外のタイミングでは生データのまま保持しておいたほうが都合がいいです.JavaScriptで無理して変換せず`$_FILES`で受け取るようにし,データベースにもvarcharやtextではなくblobで突っ込みましょう
2
2
  - PDOの書き方に色々と問題があります.**SQLインジェクション脆弱性**もあります.
3
3
  - `<meta />` `<br />` `<hr />`などはXHTMLの書き方なので, ` /`の部分は消しましょう.
4
+ - 画像形式の縛り方ですが,JPEGに対応するのは`image/jpeg`です.しかしIEはどうやら誤って(?)`image/jpg`としてしまうこともあるようなので,こちらも念のため入れています.
4
5
  - ロジックは頭に書いて,HTMLは後ろに書きましょう.
5
6
 
6
7
  > base64に置き換えた文字列から画像を呼び出す際の処理は一旦別ページにheader("Content-Type: image/jpeg");で画像を出力してからecho "<img src=\"....\">で引っ張てくる方法でしょうか。
@@ -10,7 +11,6 @@
10
11
  [PHPでデータベースに接続するときのまとめ - Qiita](http://qiita.com/mpyw/items/b00b72c5c95aac573b71) (「初心者がやりがちなミス」の複数に該当しています)
11
12
  [ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita](http://qiita.com/mpyw/items/939964377766a54d4682)
12
13
 
13
-
14
14
  ```
15
15
  <!DOCTYPE html>
16
16
  <html>
@@ -20,7 +20,7 @@
20
20
  </head>
21
21
  <body>
22
22
  <form method="post" action="upload.php" enctype="multipart/form-data">
23
- <input type="file" name="image" accept="image/jpg,image/gif,image/png">
23
+ <input type="file" name="image" accept="image/gif,image/jpeg,image/jpg,image/png">
24
24
  <input type="submit" value="確定">
25
25
  </form>
26
26
  </body>

3

補足

2016/10/13 16:09

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -3,6 +3,10 @@
3
3
  - `<meta />` `<br />` `<hr />`などはXHTMLの書き方なので, ` /`の部分は消しましょう.
4
4
  - ロジックは頭に書いて,HTMLは後ろに書きましょう.
5
5
 
6
+ > base64に置き換えた文字列から画像を呼び出す際の処理は一旦別ページにheader("Content-Type: image/jpeg");で画像を出力してからecho "<img src=\"....\">で引っ張てくる方法でしょうか。
7
+
8
+ それでもいいですが,画像サイズが巨大でなければ `data:image/png;base64,xxx` のように埋め込むデータURIスキームのほうがいいと思います.
9
+
6
10
  [PHPでデータベースに接続するときのまとめ - Qiita](http://qiita.com/mpyw/items/b00b72c5c95aac573b71) (「初心者がやりがちなミス」の複数に該当しています)
7
11
  [ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita](http://qiita.com/mpyw/items/939964377766a54d4682)
8
12
 

2

enctype

2016/10/13 15:58

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -15,7 +15,7 @@
15
15
  <title>アップロード</title>
16
16
  </head>
17
17
  <body>
18
- <form method="post" action="upload.php">
18
+ <form method="post" action="upload.php" enctype="multipart/form-data">
19
19
  <input type="file" name="image" accept="image/jpg,image/gif,image/png">
20
20
  <input type="submit" value="確定">
21
21
  </form>

1

param name

2016/10/13 15:54

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -16,7 +16,7 @@
16
16
  </head>
17
17
  <body>
18
18
  <form method="post" action="upload.php">
19
- <input type="file" accept="image/jpg,image/gif,image/png">
19
+ <input type="file" name="image" accept="image/jpg,image/gif,image/png">
20
20
  <input type="submit" value="確定">
21
21
  </form>
22
22
  </body>