Excelファイルのダウンロードで手間取った話

今日は仕事の話を少し。

今年の2月頃に頑張って作った会員専用サイト。
先方の都合で大幅に公開が先延ばしとなり、最近になってようやく運用が始まった。
その後、クライアントから問い合わせがあった。

「Excelファイルがダウンロードできないという問い合わせが何件か来ています」と。

元々定義された仕様に.jpg、.png、.pdfのダウンロードはあったものの、.xlsxは想定外。
かと言ってメインクライアントなので「仕様です」と突き返すこともせず、まずは状況を確認してみることに。

サイトはWordpressを使用していて、ファイルのダウンロードはテキストアンカーではなく、aタグをblock要素にして擬似的なボタンとして実装。
また、クライアントがダウンロードコンテンツ以外のものをダウンロードさせたくないらしく、右クリック禁止の他、ctrlボタンの無効化など、いくつかの制限を施してある。

Windows 10マシンで試してみる。
まずはChrome。
無事にダウンロードできた。

次に未だにユーザーが多いEdge。
「ダウンロードできませんでした。アクセス許可がありません」とアラートが出た。

他にFirefoxと、MacでSafariを使用して試したが、いずれも問題なし。

 

さらに掘り下げてEdgeでダウンロードできない原因を探ってみよう。
「アクセス許可」なので、サーバ上のファイルのパーミッションかと考えたが、Edgeだけダウンロードできないとなると、パーミッションの問題ではなさそう。

検索ワードを色々変えてGoogle先生に相談。

最初にSmartScreenによってブロックされている可能性が浮上。
自分の設定を確認してみたが、これではなかった。
その上、このサイトを閲覧するためだけに、利用者側のセキュリティを下げることはしたくない。

続けて調べてみたところ、Edgeの仕様として、ダウンロード対象がOfficeドキュメントの拡張子だった場合に限って挙動を変えているような記事を見かけた。
たしかに、他の.pdfや.jpg等のダウンロードはEdgeでも問題なくできる。
じゃ、どうすればいいか?

その答えは、「リンクを右クリック→対象をファイルに保存」という昔ながらの手法でダウンロードさせる方法。
きっとこれなら解決するだろう。

しかし忘れてはならない。
上の方にも書いたように、このサイトは右クリック禁止なのである。

はい、詰んだ~!

 

これらを踏まえて、俺からクライアントに出した回答はこうだ。

「今回の件を解決するためには、強制で無効にしていた右クリックを有効にすること。これを採用したくない場合は、Chromeなどの他のブラウザでアクセスするよう促すしかありません」

結果、このサイトではEdgeが非推奨となった。