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

回答編集履歴

3

修正

2016/07/05 12:28

投稿

退会済みユーザー
answer CHANGED
@@ -62,9 +62,9 @@
62
62
  <body>
63
63
  <?php
64
64
  if (isset($_FILES["upfile"])) {
65
- save_jpeg($_FILES["upfile"]);
65
+ echo save_jpeg($_FILES["upfile"]);
66
66
  } else {
67
- show_form(1024 * 1024 * 3);
67
+ echo show_form(1024 * 1024 * 3);
68
68
  }
69
69
  ?>
70
70
  </body>

2

追記

2016/07/05 12:28

投稿

退会済みユーザー
answer CHANGED
@@ -8,4 +8,65 @@
8
8
  <input type="submit" value="Submit" />
9
9
  </form>
10
10
  __FORM__; // ヒアドキュメントの末尾は行頭でなければなりません。
11
+ ```
12
+
13
+ ---
14
+
15
+ ```php
16
+ <?php
17
+
18
+ function show_form($maxsize)
19
+ {
20
+ $html = <<< __FORM__
21
+ <form action="" method="POST" enctype="multipart/form-data">
22
+ upload jpeg data:<br/>
23
+ <input type="hidden" name="MAX_FILE_SIZE" value="{$maxsize}" />
24
+ <input type="file" name="upfile"><br/>
25
+ <input type="submit" value="Submit" />
26
+ </form>
27
+ __FORM__;
28
+ return $html;
29
+ }
30
+
31
+ function save_jpeg($files)
32
+ {
33
+ $tmp_file = $files['tmp_name'];
34
+
35
+ $fn = sprintf('%s.jpeg', uniqid());
36
+
37
+ $save_file = dirname(__FILE__) . '/' . $fn;
38
+
39
+ if (!is_uploaded_file($tmp_file)) {
40
+ throw new Exception("upload error");
41
+ }
42
+
43
+ $finfo = finfo_open(FILEINFO_MIME_TYPE);
44
+ $type = finfo_file($finfo, $tmp_file);
45
+
46
+ if ($type != "image/jpeg") {
47
+ throw new Exception("not jpeg");
48
+ }
49
+ if (!move_uploaded_file($tmp_file, $save_file)) {
50
+ throw new Exception("upload failed");
51
+ }
52
+
53
+ $html = "<h1>uploaded jpeg</h1>";
54
+ $html .= "<img src='{$fn}' />";
55
+ return $html;
56
+ }
57
+ ?>
58
+ <!DOCTYPE html>
59
+ <html>
60
+ <head>
61
+ </head>
62
+ <body>
63
+ <?php
64
+ if (isset($_FILES["upfile"])) {
65
+ save_jpeg($_FILES["upfile"]);
66
+ } else {
67
+ show_form(1024 * 1024 * 3);
68
+ }
69
+ ?>
70
+ </body>
71
+ </html>
11
72
  ```

1

追記

2016/07/05 12:08

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,11 @@
1
1
  > Parse error: syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\test.php on line 29
2
2
 
3
3
  line NN と出るからといって、29 行目に問題があるとは限りません。
4
- 1 〜 29 行目にエラーがあります。
4
+ 1 〜 29 行目にエラーがあります。
5
+
6
+ ```php
7
+
8
+ <input type="submit" value="Submit" />
9
+ </form>
10
+ __FORM__; // ヒアドキュメントの末尾は行頭でなければなりません。
11
+ ```