32

このアプリケーションでは、ユーザーがドキュメントを Windows Azure BLOB ストレージ アカウントにアップロードできるようにします。ドキュメントまたは画像をアップロードすると、何らかの URL (https://name.blob.core.windows.net/container/file-name.jpg) が割り当てられます。ドキュメントが画像、PDF、またはブラウザでレンダリングできるファイルである場合、ユーザーがファイルをダウンロードする必要なく、ブラウザで表示しようとします。新しいウィンドウまたはタブを開いて、ユーザーを IE の BLOB URI に誘導すると、画像または PDF がブラウザーで正しくレンダリングされます。ただし、Chrome、FireFox、または Safari で uri を指す新しいウィンドウを開こうとすると、ブラウザにファイルが表示される代わりに、ファイルがダウンロードされるだけです。

後者の 3 つのブラウザで、ファイルをダウンロードする代わりに表示するように強制する方法はありますか?

4

5 に答える 5

58

これは、BLOB のコンテンツ タイププロパティを設定していないためです (デフォルトは application/octet-stream で、ほとんどのブラウザーでダウンロードがトリガーされます)。PDF ファイルを正しく表示するには、PDF ファイルのコンテンツ タイプをapplication/pdf (jpeg ファイルの場合は image/jpeg)に変更する必要があります。

Azure Storage Explorer、Cloud Storage Studio、CloudBerry、CloudXplorer などの一般的なツールまたは SDK を使用して、コンテンツ タイプを変更できます。これらのツールの中には、ファイルのアップロード後にコンテンツ タイプを適切なものに自動的に設定するものがあることに注意してください。

于 2012-08-04T05:25:04.123 に答える
28
   blob.Properties.ContentType = "application/pdf";

//拡張子でファイルのコンテンツタイプを取得

    public static string GetFileContentType(string FilePath)
    {
        string ContentType = String.Empty;
        string Extension = Path.GetExtension(FilePath).ToLower();

        switch (Extension)
        {
            case ConstantUtility.FILE_EXTENSION_PDF:
                ContentType = "application/pdf";
                break;
            case ConstantUtility.FILE_EXTENSION_TXT:
                ContentType = "text/plain";
                break;
            case ConstantUtility.FILE_EXTENSION_BMP:
                ContentType = "image/bmp";
                break;
            case ConstantUtility.FILE_EXTENSION_GIF:
                ContentType = "image/gif";
                break;
            case ConstantUtility.FILE_EXTENSION_PNG:
                ContentType = "image/png";
                break;
            case ConstantUtility.FILE_EXTENSION_JPG:
                ContentType = "image/jpeg";
                break;
            case ConstantUtility.FILE_EXTENSION_JPEG:
                ContentType = "image/jpeg";
                break;
            case ConstantUtility.FILE_EXTENSION_XLS:
                ContentType = "application/vnd.ms-excel";
                break;
            case ConstantUtility.FILE_EXTENSION_XLSX:
                ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                break;
            case ConstantUtility.FILE_EXTENSION_CSV:
                ContentType = "text/csv";
                break;
            case ConstantUtility.FILE_EXTENSION_HTML:
                ContentType = "text/html";
                break;
            case ConstantUtility.FILE_EXTENSION_XML:
                ContentType = "text/xml";
                break;
            case ConstantUtility.FILE_EXTENSION_ZIP:
                ContentType = "application/zip";
                break;
            default:
                ContentType = "application/octet-stream";
                break;

        }


        return ContentType;
    }

これを使用して、保存中に BLOB のコンテンツ タイプを設定します。

Blob に保存されているメディア ファイルの Content-type を設定する

于 2012-11-22T15:21:13.110 に答える