お問い合わせ

tel:0570-046-503

営業時間 10:00~17:00(定休日:土日祝日)

Yahooショッピングスマホ用ページの容量チェック

   2015/08/04

Yashooショッピングのスマートフォン用商品説明で、

トリプルを使っていようともCSSが呼び出せないことは

以前の記事でご紹介しました。

こちらのsp-additionalの項目が、スマートフォン用商品説明になります。

http://developer.yahoo.co.jp/webapi/shopping/upload_format.html


CSSが使えないとなると、各要素のstyle属性に直書きすることになるのですが、

そうなると全角5,000文字以内(半角10,000文字以内)という制限に引っかかる可能性があります。


ただし、文字数だけならテキストファイルでカウントしてあげればよいのですが、

画像込みの総容量2000キロバイト以内(600キロバイトまでを推奨)

これをテキストエディタやCSVエディタで確認することは出来ません。


そこで今回は、C#で容量をチェックするコードをご紹介します。


 

            //HTMLの記述されたテキストボックスからバイト数取得
            var bytes = VBStringsUtility.GetByte(txtHTML.Text);

            //imgarrは画像名の入った配列
            foreach (var img in imgarr)
            {
                //ファイルサイズ取得
                //固定パス + ファイル名
                var req = WebRequest.Create("参照パス" + img);
                try
                {
                    using (var res = req.GetResponse())
                    using (var st = res.GetResponseStream())
                    using (var ms = new MemoryStream())
                    {
                        byte[] buffer = new byte[1024];
                        while (true)
                        {
                            int readSize = st.Read(buffer, 0, buffer.Length);
                            if (readSize == 0)
                                break;
                            ms.Write(buffer, 0, readSize);
                        }

                        bytes += (int)ms.Length;
                    }
                }
                catch (Exception ex)
                {
                }

            }

            //2000キロバイト以上ならエラー
            if (bytes > 2000000)
            {
                //
                MessageBox.Show("2000バイトを超えています。", _
                "エラー", _
                MessageBoxButtons.OK, _
                MessageBoxIcon.Error)
            }

まずは、HTMLの文字数をカウントします。

VBStringsUtility.GetByte()関数は、自社ユーティリティクラスで、

VBのバイト数取得関数をラッピングしたクラスになります。

それから、画像ファイルの一覧をピックアップして、各画像ファイルにアクセスを

行ってバイト数を計っています。

WebRequestクラスでのアクセスを行っています。


計測したバイト数を加算していきます。

当然ですが、画像数が多くなればなるほどバイト数は大きくなります。


これで、容量のチェックが出来るわけですが、難点を挙げるとすると

WebRequestを用いた画像ファイルへのアクセスに時間がかかることです。


最近ではスマートフォンからのアクセスが伸びているので無視するわけにも

いかないですし、判断が難しいところです。

早くスマートフォン用ページでもCSSが使えるようになってくれればなあと思うのと、

端末に縛られないレイアウトを考えていく必要があるなと考えさせられる

毎日です。

  • ブログランキング・にほんブログ村へ
  • FC2ブログランキングへ
  • 人気ブログランキングへ
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)