問題タブ [vaadin14]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 画像をGoogleバケットにアップロードしても、画像として認識されなくなりました
SpringBoot で Vaadin 14 を使用しています。画像を Google バケットにアップロードするソフトウェアを作成しています。アップロード自体は正常に機能しますが、バケットに到達するファイルは画像ではなくなります。数週間前にコードを書きましたが、それでも機能しました。何も変わっていませんが、今はもう機能しません。InputStream を使用してバケットにアップロードしています。Vaadin アップロード コンポーネントからストリームを取得します。ここにコードがあります
vaadin コンポーネントから memoryBuffer へのアップロード
次に、入力ストリームを他のいくつかのクラスに渡します。ここに到達するまでは何もしません: contentType: "image/jpeg" を設定し、それを自分のbucketServiceに渡して入力ストリームをアップロードします。
以前は完全に機能していましたが、それ以来コードは変更されていないため、Google で何かが変更されたと推測しています。試してみることができること、または変更されたことを知っている人がいるかどうか疑問に思っていました。
入力ストリーム自体が有効かどうかをテストするコードもいくつか作成しました。メモリから取得した画像を画面に表示します。
前もって感謝します :)
- 編集
さらに調査した結果、入力ストリームによって生成された byte[] が、ファイル自体によって生成された byteArray とは異なることがわかりました。
1 バイトの違いがあります: 最初のバイトです。
バイト: -40、-1、-30、...
内容: -1、-40、-1、-30、...
これがどのように機能するかについては何も知りません。明確にするために、byte[] コンテンツはバケットに画像を正しく表示します!
inputStream 内の buf をチェックすると、byte[] があり、その byte[] の内部は content byte[] と同じです。
デバッガーでこれを行う場合:
ファイルがアップロードされて動作しますが、.buf は保護されているため、コードで使用できません。これにより、入力ストリームをバイト[]に変換するときに問題が発生しているように見えます
これで私を助けることができる何かを知っている人はいますか?
java - vaadin 14 で navbar にアクセスする
アプリケーションに vaadin 14 を使用しています。私の MainView クラスは Applayout クラスを拡張します。これにより、アプリケーションにナビゲーション バーを追加する addToNavBar(true, some Components) 関数を使用できるようになります。
さて、メイン ビューのナビゲーション バー内に、登録ボタンとログイン ボタンが表示されます。これらのボタンをクリックすると、 addonclick リスナーを使用して、ログインや登録などの他のビューに委任します。これらのビューの変更中、上部のナビゲーション バーはそのままです。ただし、ユーザーがログインまたは登録した場合は、ナビゲーション バーのこれらのログイン ボタンと登録ボタンを削除し、ナビゲーション バー内にあるプロフィール画像アイコンに置き換えます。ただし、子ビュー(登録、ログイン)からvaadin 14でnavbarにアクセスする方法が見つかりませんでした。したがって、子ビューからnavbarのコンテンツにアクセスして変更するにはどうすればよいですか?