問題タブ [multipart]
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 - HTTPClient MultipartEntity がガベージ テキストを StringBody パーツに追加しているようです
Apache Commons の HttpClient を使用して、バイナリ ファイルといくつかの文字列パラメーターを含むマルチパート POST 要求を送信しようとしています。
ただし、どこかで、ガベージ テキストが文字列パラメーターに入り込んでいるようです。たとえば、デバッガーで確認すると、sizeBody
ここの変数は実際に値「100」を保持しています。
ただし、Wireshark でリクエストをリッスンすると、次のように表示されます。
a5
の後に注意してください100
。
何が原因でしょうか? どこを見ればいいですか?
http - Apache Abdera でのチャンク転送エンコーディングの問題
Apache Abdera を使用して Atom マルチパート データをサーバーに POST していますが、特定できない奇妙な問題がいくつかあります。
チャンク転送エンコーディングの問題のように見えますが、確かなことは経験が不十分です。この問題は、送信した要求に必要な 2 つではなく、1 つの MIME 部分しか含まれていないことを示すエラーをサーバーがスローすることで明らかになります。インターフェイスに Wireshark を接続して会話をキャプチャしたところ、次のようになりました。
サーバーの応答:
私のクライアントは続けます:
この時点で、サーバーは次のように応答します。
エラーを示す (よく理解されている)。私のサーバーは、base64 でエンコードされたビットの山を出力ストリームにストリーミングし続けますが、その間、サーバーはリッスンしていないため、要求が間違っていたと既に判断されています。
残念ながら、私は HTTP レイヤーを担当していません。これはすべて、Abdera が Apache httpclient を使用して処理します。これを行う私のコードは次のようになります。
ここで、SWORDMultipartRequestEntity は標準の Abdera MultipartRequestEntity クラスのコピーであり、追加のヘッダーがいくつかスローされています (たとえば、上記のスニペットのパッケージングを参照してください)。「預金」引数は、アトム部分と入力ストリームを保持する単なるオブジェクトです。
デバッガーを接続すると、このコード行に問題なく到達しますが、それがネズミ穴に消えて、このエラーが返されます。
ヒントやヒントはありますか?攻撃の角度をかなり使い果たしました。
私にとって際立っている唯一のことは、atom:entry ドキュメントの直後に、「0」だけの改行があることです。これは、チャンク転送エンコーディングのように見え、「終了しました」を表しています。どうやってそこにたどり着いたのか、本当に効果があるのか はわかりません。大変助かりました。
乾杯、
リチャード
nginx - upload_module と multipart/form を使用した nginx の再開可能なアップロード
現在、カスタムデスクトップアプリケーションからアップロードモジュール( http://www.grid.net.ru/nginx/upload.en.html )を使用してnginxサーバー上のWebサービスにアップロードし、送信する単純なマルチパートフォームPOSTを実行していますファイルの一部と、ファイルのメタデータを含む base64 でエンコードされた XML が別の部分に含まれています。
サーバーはこの POST を受信し、メタデータを読み取り、ファイルを処理する Web サービスに渡します。
私が今やりたいことは、アップロード モジュールの upload_resumable ディレクティブを使用して POST をいくつかのチャンクで実行し、切断の可能性を最小限に抑えて再開できるようにすることです。私は現在、ここで説明されているプロトコルに従ってこれを行うことができます: http://www.grid.net.ru/nginx/resumable_uploads.en.html
ファイルのバイト範囲をいくつかのヘッダーとともに送信して、いくつかの投稿でチャンクとセッションを識別し、すべての部分がアップロードされると、nginx はファイル名とパスを含む最終的な POST を作成し、それを upload_pass の場所に渡します (私の場合、djangoアプリへのCGI)。
ただし、プロトコルは POST の本文がバイト範囲で示されるバイトでなければならないことを示しているため、このメソッドを使用してマルチパート投稿を送信する方法については明確ではありません。上記で書いた XML も含めるために、最後の投稿が必要です。
XML を本文の最初のバイトとそれに属するバイト数を示すヘッダーとして送信することを考えることができますが、それはそのヘッダーを削除するために最終ファイルを余分に処理することを意味し、最終ファイルは潜在的に GB サイズの範囲になります。 .
他のアイデアはありますか?
mysql - node.js: データベース クエリ + マルチパート フォーム データのロックアップ
私はまだノード全体にかなり慣れていないので、これが非常にばかげている場合はご容赦ください。
node-mysqlクライアント オブジェクトを呼び出しquery()
た場合、Web アプリ ( express )内からリクエスト オブジェクトの本体を取得できなくなりました。
ユーザー認証を必要とする私の基本的な POST / PUT パターン リクエストは次のとおりです。
ここでの問題は、get_request_body 関数が戻ってこないことです。リクエストオブジェクトで「ブロック」されているようです。
サンプルプログラムは次のとおりです。
トリック: 通常の POST データではなく、マルチパート形式の POST データを使用している場合にのみ失敗します。
作品
閉じこもり、二度と戻らない。connect-formとmultipart-jsで同じエラーが発生しました。ここでちょっと困惑しています。
私は完全なばかですか?これは物事を行う正しい方法ではありませんか?
c++ - Qt とマルチパート HTTP
マルチパート http リクエストを使用する必要がある Qt アプリがあります。ネットで調べてみると、マルチパート リクエストが Qt4.8 に追加されていることがわかりましたが、今は役に立ちません。私は今、その機能が本当に必要です。
HTTP がどのように機能するのかよくわからないので、独自のソリューションを展開することは私を超えています。誰かが Qt ベースのライブラリやその仕組みの説明を教えてくれたら、とてもありがたいです。
また、Qt に含まれる Webkit ブラウザーはマルチパート HTTP リクエストをサポートしていると思います。そのため、Webkit の機能を使用して問題を解決する方法を誰かが知っていれば、非常にありがたいです!
ありがとう!
オスカー
jquery - jQuery FileUpload スクリプトで POST を追加
このスクリプトhttps://github.com/blueimp/jQuery-File-Uploadを複数のファイル (画像) のアップロードに使用しています。うまく機能しますが、フォームにテキストボックスを追加して、各ファイルを投稿したいと思います。オプションには例がありますが、うまくいかないようです。https://github.com/blueimp/jQuery-File-Upload/wiki/Options例は formData です。jQuery の .tmpl() を使用していくつかの列にデータを入力しているようです。また、JSONを使用してデータを投稿しているようです。別の JSON パラメータを追加できましたが、個々のファイルのアップロードから $_POST['desc'] を取得できないようです。アップロードにテキストボックスを追加することさえ可能かどうかはわかりません。ユーザーがアップロードするファイルごとに一意の $_POST 変数を作成するにはどうすればよいですか? 私が取り組んでいるサイトへのリンクは次のとおりです。http://epicplank.com/beta/upload/example/
どんな助けでも大歓迎です。
java - 拡張MultipartEntityがストリームを正しく書き出さない
AndroidHttpClientにProgressDialogを実装したい。ここで、 CountingMultipartEntityの簡単な実装を見つけました。
さらに、コンテンツの長さのサポートを追加しました。メソッドをオーバーライドします。
FileBodyのアップロードはほぼ正常に機能します。アップロードに1つのファイルが含まれている場合は完全に機能しますが、2つのファイルがある場合は、2番目のファイルは部分的にしかアップロードされません。InputStreamBodyは機能しますが、 InputStream
の長さをカウントしない場合に限ります。だから私はそれをリセットする必要がありますが、どうやって?addPart
ここで私のオーバーライドaddPart
:
CountingInputStreamは、InputStreamの単純な拡張です。
カウントはほぼ機能します。2バイトしかないので、そこにあるべきではありません。しかし、それはとても重要です。
まず、ストリームをリセットする必要があると思いました。後に呼び出されるリセットは、 IOExceptionin.getReadedBytes();
につながります。
アドバイスありがとうございます。
qt - Qtマルチパート投稿の問題
マルチパートPOSTリクエストの送信についてサポートが必要です。主な問題は、サーバーがリクエストの投稿本文部分を認識しないことです。サーバー側はAndroidで正常に動作していますが、QtとNetworkAccessManagerでは動作していません。
コードは次のとおりです。
ここで、リクエストで送信するbodyPartを作成します(transferDataはテキストを含むQByteArrayです):
ヘッダーは次のとおりです。
oauth - DotNetOpenAuth - いくつかのクエリ文字列パラメータを使用してマルチパート リクエストを生成する方法は?
いくつかのクエリ文字列パラメーターとマルチパート ポスト パーツを必要とする API の oAuth マルチパート リクエスト メッセージを作成する必要があります。しかし、IDictionary 型のクエリ文字列パラメーターと MultipartPostPart フィールドの両方を受け入れる PrepareAuthorizedRequest メソッドはありません。私は何をすべきか?
amazon - Amazon S3 マルチパート アップローダーの SignatureDoesNotMatch
私は AS3 マルチパート アップローダに取り組んでいます。署名を作成するために、このドキュメントhttp://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAuthentication.htmlを使用しています。これが私の例です:
リクエスト:
署名のないテキスト:
そして、応答として次のエラーが表示されます: SignatureDoesNotMatch: The request signature we Calculated does not match the signature you provided. キーと署名方法を確認してください。
未署名のテキストに一部のヘッダーがありませんか? おそらくReferer、Acceptなどは署名されていないテキストにあるはずですか?
JavaScript で Amazon S3 Signature Tester ( http://aws.amazon.com/code/199 ) を使用していますが、同じ未署名のテキストを取得しています。多分問題は暗号化にありますか?as3crypto ライブラリを使用しています。そのためのAS3コードは次のとおりです。
助けてください!ありがとう!