問題タブ [httppostedfilebase]
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.
asp.net-mvc - パラメータがModelの場合、ASP.NETMVCはファイルモデルバインディングを投稿しました
カスタムモデルバインダーで要求コンテキストを手動で確認したり、投稿されたファイルのみを入力として受け取る別のアクションメソッドを作成したりせずに、投稿されたファイル(<input type="file" />
)をASP.NET MVCのモデルバインディングに参加させる方法はありますか?
私はこれがうまくいくと思っていたでしょう:
しかし、上記のシナリオを考えるMyFile
と、バインディングコンテキストの値プロバイダー値の一部でさえありません。(OtherProperty
もちろんです。)しかし、これを行うと機能します。
では、パラメーターがモデルの場合、なぜバインディングが発生しないのでしょうか。また、どうすればそれを機能させることができますか?カスタムモデルバインダーを使用しても問題はありませんが、カスタムモデルバインダーでこれを確認せずに行うにはどうすればよいRequest.Files["MyFile"]
ですか?
一貫性、明確性、テスト容易性のために、リクエストコンテキストを手動で検査することなく、投稿されたファイルにバインドされたプロパティを含む、モデル上のすべてのプロパティの自動バインドをコードで提供したいと思います。私は現在、ScottHanselmanが書いたアプローチを使用してモデルバインディングをテストしています。
それとも私はこれを間違った方法で行っていますか?これをどのように解決しますか?または、Request.FormとRequest.Filesの分離の歴史があるため、これは設計上不可能ですか?
asp.net-mvc - HttpPostedFile が広告どおりに実行されず、ダウンロードがメモリではなくディスクにバッファリングされないのはなぜですか?
<input>
マルチパート フォーム データをポストする標準の HTML コントロールを使用して、大きなファイルを ASP.NET サーバーにアップロードしています。これは ASP.NET MVC アプリケーションです。
MSDN によると、HttpPostedFile
クラスはすぐにディスクにバッファリングされます。
「ファイルは MIME multipart/form-data 形式でアップロードされます。デフォルトでは、フォーム フィールドやアップロードされたファイルを含む、256 KB を超えるすべてのリクエストは、サーバー メモリに保持されるのではなく、ディスクにバッファリングされます。」
これはHttpPostedFileBase
、コントローラーにアクセスするとき、HttpPostedFileBase
のInputStream
プロパティにアクセスするときに、サーバーのメモリ不足を心配することなく、どこかにファイル バッファーを書き込むことができることを意味すると思います。これは明らかに実行できない解決策です。
からの受信ファイルのそれぞれをどのように処理しているかを示す擬似コードを次に示しますHttpPostedFileBase
。
私の web.config の httpRuntime ブロックは次のようになります。
私の実装は機能し、ペイロード全体をバッファリングするために必要な同じ量のメモリがサーバーによって消費されることを除いて、複数のファイルが期待どおりにアップロードされます。InputStream がすべてをバッファリングしていると想定する必要があります。メモリの容量よりも多くのファイルをアップロードすると、予想どおりOutOfMemoryException
. これは、800 MB のファイルをアップロードするときのメモリ スパイクの画像です。
Flash/Silverlight ウィジェットを使用したり、カスタムを作成してアップロードをインターセプトして自分で処理したりできることはわかっていますが、 MSDN の言う通りにすれば (または私のやり方が間違っている場合) HttpModule
、現在の要件は問題なく機能します。HttpPostedFile
image - HttpPostedFileBaseを画像に変換するにはどうすればよいですか?
ASP.NET MVCを使用していて、ファイルをアップロードするアクションがあります。ファイルは正しくアップロードされています。ただし、画像の幅と高さが必要です。最初にに変換してから続行HttpPostedFileBase
する必要があると思います。Image
それ、どうやったら出来るの?
また、画像の幅と高さを取得する別のより良い方法があるかどうかをお知らせください。
asp.net-mvc - ASP.Net MVC イメージのアップロードが Google Chrome で失敗する
画像アップロードフォームがあります
それはアクションに戻って投稿します
このコードは、Google Chrome を除くすべてのブラウザーで機能します。私の IDE は Visual Studio 2k8 です。Google Chrome でデバッグする方法がわかりませんが、エラー メッセージが表示されます。Chrome では何らかの理由で次のチェックに合格しないことがわかっています。
どうやら、Chrome では、HttpPostedFileBase パラメーターの画像が正しくエンコードされておらず、MIME タイプが失われているようですが、これだけが問題ではない可能性があります。Chrome での HttpPostedFileBase パラメータの何が問題なのですか?どうすれば修正できますか?
ご清聴ありがとうございました。ご協力いただきありがとうございます。
asp.net-mvc - モデル バインディング HttpPostedFileBase とファイルのデータストアへの保存
ASP.NET MVC は、HTML フォームのファイル入力フィールドと HttpPostedFileBase の間を正しく自動的にバインドしているようです。一方、ファイル入力フィールドからバイト配列にバインドできません.試してみたところ、Base64に変換できないという例外が発生しました。以前はモデル クラスにバイト配列プロパティしかありませんでした。これは、後でオブジェクトを XML ファイルにシリアル化するために必要になるためです。
今、私はこの回避策を考え出し、うまくいきましたが、これがうまくいくかどうかはわかりません:
c# - ASP.NET MVC でファイルをアップロードしようとすると、null と表示される
何らかの理由で、パラメーターOriginalLocation
は常にnull
次のコードにあります。私は何を間違っていますか?
コントローラ:
意見:
モデル:
asp.net-mvc - ASP.NET MVC ファイルのアップロード
やあ、
私のモデル(部分)
私の行動
ファイルアップローダ
私が抱えている問題は、AddDocument ボタンが押されたときに、空のモデルがコントローラーのアクションに渡されることです。また、HttpPostedFileBase の基本プロパティは System.NotImplementException を返します。
モデルをアクションに正しく渡すために何をする必要があるか教えてもらえますか?
asp.net - ASP.NETMVCがモデルを*一緒に*ファイルと一緒にコントローラーに渡す
わかりました、私はこれに数時間行ってきました、そして私は単に解決策を見つけることができません。
ユーザーからデータを取得したい。したがって、最初に、コントローラーを使用して、モデルを受け取るビューを作成します。
次に、私はビューを持っています:
そして最後に-元のコントローラーですが、今回はデータを受け入れるように構成されています:
私が何をしても、(または)のcount
属性は0のままなので、このコントローラーの残りの部分は重要ではありません。フォームからファイルを渡す方法が見つかりません(モデルは問題なく渡されます)。Request.Files
Request.Files.Keys
c# - 静的メソッドを含むメソッドを単体テストするにはどうすればよいですか?
これはできますか?これが私がテストしている方法です:
単体テストでは、Rhino.Mocksを使用しており、_file.SaveAs()が呼び出されたことを確認したいと思います。_file(HttpPostedFileBaseオブジェクト)をモックアウトして、このメソッドのクラスコンストラクターに挿入しました。この単体テストを実行したいのですが、実際にはDirectory.CreateDirectory呼び出しを実行しません。これは可能ですか?
asp.net-mvc - HttpPostedFileBase を支持する System.IO.Stream
メンバーが写真をアップロードできるようにするサイトがあります。MVC コントローラーではFormCollection
、アクションのパラメーターとして を取得します。次に、最初のファイルを type として読み取りますHttpPostedFileBase
。これを使用してサムネイルを生成します。これはすべてうまくいきます。
メンバーが自分の写真をアップロードできるようにするだけでなく、 を使用してSystem.Net.WebClient
自分で写真をインポートしたいと考えています。
アップロードされた写真 (ファイル) を処理するメソッドを一般化して、特定のHttpPostedFileBase
.
にはファイルのストリームを含むプロパティがあり、HttpPostedFileBase
Streamを返すメソッドがあるため、すべてを Stream に基づいて作成しようとしています。InputStream
WebClient
OpenRead
ただし、 Stream overを使用すると、ファイルの検証に使用するプロパティが失われHttpPostedFileBase
ているように見えます。ContentType
ContentLength
以前にバイナリ ストリームを使用したことがありませんが、ストリームからContentType
andを取得する方法はありContentLength
ますか? HttpPostedFileBase
または、ストリームを使用してオブジェクトを作成する方法はありますか?