回答編集履歴

1

質問への修正依頼によって、質問の内容が判ったので回答を記述した。

2017/09/20 02:12

投稿

coco_bauer
coco_bauer

スコア6915

test CHANGED
@@ -11,3 +11,67 @@
11
11
  質問への修正依頼で、起きている現象が「ファイルが開けませんでした」と知って、質問の状況が把握しかねています。
12
12
 
13
13
  (長文なので、回答のところに書かせてもらいました)
14
+
15
+
16
+
17
+ == 質問の内容が判ったので、回答させてもらいます ==
18
+
19
+ 1)「1つはサーバ側で単純にdocからdocxに拡張子を変更したこと」と質問への修正依頼への回答に書かれています。
20
+
21
+ ファイルのダウンロードというのは、ファイルのデータをマシン間で転送する機能にすぎません。
22
+
23
+ サーバ側のファイルが.docファイルであるのなら、ダウンロードされたファイルも.docファイルになります。
24
+
25
+ 拡張子を変えたからといってファイルの内容は変わりませんので、拡張子の変更が無意味というのはkey344さんのご指摘の通りです。
26
+
27
+
28
+
29
+ 2)[サーバ側に.docx] Visualforceページを使ってファイルを出力する際には、ファイルのmime typeを指定します。
30
+
31
+ .docの場合は、"application/msword"ですが、
32
+
33
+ .docxの場合は、"application/vnd.openxmlformats-officedocument.wordprocessingml.document"です。
34
+
35
+
36
+
37
+ いろいろなファイルのmime typeが以下の英語版stackoverflowの質問の1つ目の回答に書かれているので、参考にしました。
38
+
39
+ [What is a correct mime type for docx, pptx etc?
40
+
41
+
42
+
43
+ ](https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc)
44
+
45
+
46
+
47
+ 3) 『元々、docファイルで出力するようにしているのですが、それだと1ページに収まりませんでした。
48
+
49
+ しかし、あるPCでダウンロードしたファイルだけ1ページに収まっていたのです。調べてみるとdocxファイルでした。』
50
+
51
+ というのは、
52
+
53
+  ・その時点でサーバには1ページに収まらない.docファイルAと、1ページに収まる.docxファイルBが存在していた(元のファイルと、誰かが1ページに収まるように編集したファイルの両方がサーバにあった)という事ではないかと思われます。
54
+
55
+
56
+
57
+ 4)そもそも、質問にURLが書かれている[[salesforce]VisualforceページでWord、Excelファイルの出力](http://deferloader.blog.uhuru.co.jp/?p=1406)には、以下のような説明があります。
58
+
59
+
60
+
61
+ "参考サイトの中盤にありますが、<apex:page>タグのContentType属性に
62
+
63
+
64
+
65
+ ワードの場合: contentType=”application/msword”
66
+
67
+ エクセルの場合:contentType=”application/x-excel”
68
+
69
+ と指定すると、ワード、エクセルで開いて編集ができるファイルとして出力されます。
70
+
71
+
72
+
73
+ この出力されるファイルは、テキストエディタで開くとわかりますがただのHTMLファイルです。そのファイルをワードやエクセルで開いて編集しているという状態です。"
74
+
75
+
76
+
77
+ つまり、Wordのファイルをダウンロードしているのではなく、Wordの内容と似たWebページ(HTMLファイル)がダウンロードされているという事を理解する必要があるのではないでしょうか。