2017-11-09 11 views
0

<a>タグからファイルをダウンロードするときに名前を変更しようとしています。ここでhtml属性をダウンロードしても外部URLを使用してファイルの名前が変更されない

簡単な例:

<a href="https://i.stack.imgur.com/440u9.png" download="stackoverflow.png">Download Stackoverflow Logo</a>

あなたが見ることができるように、それはそれがデフォルト名で行い、stackoverflow.png名前のファイルをダウンロードすることはありません。

しかし、イメージをダウンロードしてローカルルートで同じことを試みた場合、ファイルの名前が正しく変更されます。

もう一つの例:

<a href="./images/440u9.png" download="stackoverflow.png">Download Stackoverflow Logo</a>

上記の例では正常に動作します。

なぜdownload html属性はローカルルートのみを使用して動作しますか?

ありがとうございます!

答えて

1

属性downloadworks only for same origin URLs。ところで

、あなたが本当に適切な用語を使用することを学ぶ必要がある、または他の人があなたを理解できないだろう。

  • <a href="https://i.stack.imgur.com/440u9.png" download="stackoverflow.png">タグあり、具体的には、開口部タグ。
  • downloadは、属性です。
  • stackoverflow.pngは、属性のです。
  • https://i.stack.imgur.com/440u9.pngはURLであり、URIまたはアドレスと呼ばれることもあります。
  • 全体の構成<a href="https://i.stack.imgur.com/440u9.png" download="stackoverflow.png">Download Stackoverflow Logo</a>の要素です。

"ルート"は完全に他のものであり、HTMLとの関係はありません。

+0

ポイントをいただきありがとうございます。私は今、正しく綴っていると思います。間違った用語を見つけたら、質問を編集してください。再度、感謝します! –

+0

リンクのおかげで、私は直面していた問題と同じ原点URLの制限があるようだ。 –

0

私はそれの情報を見つけることができませんでしたが、外部リソースの名前を変更することはできないようです。

hereをご覧ください.Googleイメージにリンクする例があり、それも動作しません。仕様が変更されたようです。

0

これは、ダウンロードをホストしているサーバーがHTTPヘッダーを使用してファイルをダウンロード用として明示的にマークしていない、クロスオリジンダウンロード要求に適用されるセキュリティ対策です。 the HTML specificationから

アルゴリズムは、ダウンロードがダウンロードされているリソースより 異なる起源から始まったこの段階、およびダウンロード用として適したファイルをマークしていなかったの原点 に達した場合、ダウンロード はユーザーによって開始されていません。ダウンロード 属性がダウンロードをトリガーするために使用されたか、または 質問のリソースがユーザーエージェントがサポートしているタイプではないためです。

例えば、敵対的なサーバは 考え にユーザーをだましことで、無意識のうちに敵対的なサーバーに個人情報 をダウンロードして再アップロードするユーザーを取得しようとすることができ、これは、危険な可能性データは敵対的なサーバーからのものです。

したがって、それはユーザーが何らかの形で混乱を防ぐために、当該のリソースが全く異なるソースから来ること 、および を通知され、ユーザーの利益になる、潜在的に 敵対的なインタフェース原点から任意の推奨されるファイル名はする必要があります無視される。

関連する問題