質問編集履歴

1

パソコンいじれるようになったので詳細

2018/07/02 13:54

投稿

pandanoir
pandanoir

スコア72

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,81 @@
25
25
  こんな感じです。
26
26
 
27
27
  (今手元にパソコンがないので細かいバージョン等はわかりません)
28
+
29
+
30
+
31
+ # 追記
32
+
33
+
34
+
35
+ パソコンを動かせるようになったので詳しいプログラム等を載せます。
36
+
37
+
38
+
39
+ ```php
40
+
41
+ <?php
42
+
43
+ // 一時ファイルができているか(アップロードされているか)チェック
44
+
45
+ $filename = uniqid() . ".md";
46
+
47
+ if (!is_uploaded_file($_FILES['upload_file']['tmp_name'])) {
48
+
49
+ echo "file not uploaded.";
50
+
51
+ die;
52
+
53
+ }
54
+
55
+ // 一時ファイルを保存ファイルにコピーできたか
56
+
57
+ if (!move_uploaded_file($_FILES['upload_file']['tmp_name'], "./_upload/$filename")) {
58
+
59
+ // コピーに失敗(だいたい、ディレクトリがないか、パーミッションエラー)
60
+
61
+ echo "error while saving.";
62
+
63
+ die;
64
+
65
+ }
66
+
67
+
68
+
69
+ exec("cat ./upload$filename | perl -pe 's/。/./g; s/、/,/g;' | pandoc --to docx -o ./output.docx", $res, $type);
70
+
71
+
72
+
73
+ if (file_exists('./output.docx')) {
74
+
75
+ header('Content-Type: application/octet-stream');
76
+
77
+ header('Content-Length: ' . filesize('./output.docx'));
78
+
79
+ header("Content-Disposition: attachment; filename=output.docx");
80
+
81
+
82
+
83
+ readfile('./output.docx');
84
+
85
+ unlink('./output.docx');
86
+
87
+ } else {
88
+
89
+ echo "error occured";
90
+
91
+ }
92
+
93
+ ```
94
+
95
+
96
+
97
+ 1. アップロードされたファイルを_uploadフォルダに移す
98
+
99
+ 1. そのファイルに対してpandocを実行する
100
+
101
+ 1. pandocがきちんと出力をしていた場合(output.docxが生成された場合)そのファイルをダウンロードさせる
102
+
103
+
104
+
105
+ このような流れです。1はできているのですが、pandocの実行がうまくいきません。(pandocというのはMarkdownやLaTeXなどの相互変換するためのツールです)