問題タブ [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.
.net - MVC3 HttpPostedFileBase 最初のアップロードではデータが返されないが、その後はデータが返される
問題の背景。
編集 3 これが Chrome 20 で再び機能しているように見えることを確認できます。ありがとう!
TLDR アップデート
EDIT 2 これについてさらにいじった後、Chrome 19のバグのようです。こちらをご覧ください:
最小のバグのようなものはありません! :-)
最新の Firefox と IE8/9 は期待どおりに動作します。Fiddler のログは同じ動作を示していますが、2 回目の 401 認証チェックでフォーム ペイロードが文字化けして送信されず、期待どおりに動作するという大きな違いがあります。
これはテスト ケースのように思えますが、現在修正中です。ですから、うまくいけば、これに遭遇した可能性のある人にとって、これが役立ちます!
エンド TLDR
「イベント」のCSVファイルであるアップロードされたファイルのみを取り込むコントローラーアクションがあります。バックグラウンドで、この CSV が解析されて Event オブジェクトに変換され、データがデータベースに同期されます。結果出力として、ユーザーは、発生した各行のすべてのエラーを含む Excel スプレッドシートをダウンロードするように求められます。
これはすべて、私の開発マシンでローカルに正常に動作します。ただし、DEV 環境にデプロイすると、異なる結果が得られます。ファイルを最初にアップロードしようとすると、ストリームが「What's the word that I'm looking for here, unreadable?」 になります。その長さは正しく報告されますが、情報を引き出そうとしても何も得られません。後続の読み取りにはデータがあり、すべてが期待どおりに機能します。
関連するコード写真を提供します。まず、生成された HTML フォームを簡略化します。
かなり簡単です:
コントローラーのアクション (混乱を許してください。私はこれを数時間ハッキングしてきました):
目標は、サービス メソッドに textreader または stringreader を渡すことです。これは、これらの型を必要とする CSV 処理の実装を舞台裏で使用しているためです。
最初のリクエストが失敗したのに、その後の作業が失敗した理由はありますか? アイデアが枯渇しているので、新鮮な目が必要だと感じています。
最後の点として、IIS 7.5 は、IIS Express を介したローカルと宛先サーバーの両方のターゲットです。
ありがとう
賞金の編集:
ここに報奨金メッセージと各リクエストの Fiddler 出力をコピーしています
この質問にいくつかのコメントを追加しました。この問題は、NTLM に関連して発生します。Fiddler に表示されるのは、有効なフォーム データを含むリクエスト 1 の 401 Unauthorized です (ポイント、これらの最初の 2 つの 401 Unauthorized リクエストは、Windows 認証のみがオンになっているシナリオでは「正常」であることを理解しています。確認してください)。リストされているリクエスト 2 は、同じフォーム データを含む 401 です。ただし、アップロードされたファイル データは、正確にアップロードされたデータではなく、まったく同じサイズのデータであり、まったく同じサイズのボックスの集まりになっています。リクエスト 3 は、文字化けしたデータを含む 200 OK であり、これが私のコントローラー アクションが得ているものです。ファイルのアップロードで NTLM をうまく機能させるにはどうすればよいですか?
各リクエストの Fiddler 出力は次のとおりです。
リクエスト 1)
リクエスト 2)
そして最後に処理された HTTP 200 OK であるリクエスト 3
EDIT 2 これについてさらにいじった後、Chrome 19のバグのようです。こちらをご覧ください:
最小のバグのようなものはありません! :-)
最新の Firefox と IE8/9 は期待どおりに動作します。Fiddler のログは同じ動作を示していますが、2 回目の 401 認証チェックでフォーム ペイロードが文字化けして送信されず、期待どおりに動作するという大きな違いがあります。
これはテスト ケースのように思えますが、現在修正中です。ですから、うまくいけば、これに遭遇した可能性のある人にとって、これが役立ちます!
ありがとう
c# - ASP MVC ファイルのアップロード HttpPostedFileBase が Null です
私が持っているコントローラーでは、ビデオに関する詳細を入力して実際にアップロードできるようにしたかったので、別の Web サービスに渡されるため、Video クラスには実際のビデオは必要ありません。
そして私の見解では、
}
フォームを送信すると、VM の videoModel 部分が入力されますが、実際のファイルは null です。何か案は?
.net - .Net multipart/form-data フォームの enctype と UTF-8 の「特殊」文字 => � (MVC w/ HttpPostedFileBase)
ゴール:
UTF-8 文字を含む CSV ファイルを MVC アクションにアップロード/投稿し、データを読み取り、データベース テーブルに貼り付けます。
問題:
プレーンテキスト文字のみが通過します。á のような UTF-8 の「特殊な」文字は、コード内およびデータベース内でこの文字 => � としてレンダリングされ、正しく受信されません。
もっと:
以下に重要な部分を含めましたが、これは私の C# コードの問題ではないと確信しています。
アップロードされたファイルがプレーンテキストまたは「プレーン/テキスト」MIME タイプでエンコードされていることが問題だと思っていましたが、ファイル拡張子を .html に変更することでそれを変更できました
概要:
enctype 属性が「multipart/form-data」に設定されたフォームを取得して、投稿されたファイルの UTF-8 文字を正しく解釈するにはどうすればよいですか?
リサーチ:
私の調査によると、これは一般的で明確な解決策がない一般的な問題のようです。
.Net よりも Java と PHP のソリューションも多く見つけました。
csvFile 変数のタイプは HttpPostedFileBase です
これは MVC アクション署名です
[HttpPost]
public ActionResult LoadFromCsv(HttpPostedFileBase csvFile)
私が試したこと:
1)
2)
3)
4)
5)
ファイルの拡張子が .txt の場合、HttpPostedFileBase の ContentType プロパティは "text/plain" です。
ファイル拡張子を .txt から .csv に変更すると、HttpPostedFileBase の ContentType プロパティは "application/vnd.ms-excel" になります。
ファイル拡張子を .html に変更すると、HttpPostedFileBase の ContentType プロパティが "text/html" になります。これが勝者になると思っていましたが、そうではありませんでした。
私の魂では、この問題には簡単な解決策があると信じなければなりません。ファイルに UTF-8 文字をアップロードするのは一般的な作業です。なぜ私はここで失敗するのですか?!?!
Web サイト用に IIS で MIME タイプを調整する必要があるのではないでしょうか?
おそらく、別の DOCTYPE / html タグ / メタ タグが必要ですか?
@ゲイブ -
これが私の投稿がフィドラーでどのように見えるかです。これは非常に興味深いことです。なぜなら、これは日付のように明白で、ポスト値のすぐそばにあるからです。
asp.net-mvc - MVC4-IIS 7.5に展開すると、IEでアップロードが機能しない
この問題は、これをライブサーバーに展開した場合にのみ発生し、Visual Studio Webサーバーの開発マシンで正常に機能し、IE(8と9の両方)でのみ問題になります。
このフォームでjpegを投稿しています...
このJavaScriptを使用して...
このコントローラーに...
IEではfile.ContentLength=0になりますが、FFとChromeでは正常に機能します。違いが生じる場合は、マシンはイントラネット上にあります。
どんな助けでも大歓迎
更新1:
奇妙なことに、問題は断続的に発生しているようです。金曜日に同僚は何もアップロードできませんでしたが、今朝はアップロードできなかったのは私であり、同僚は両方ともIEを使用できます。
すべてがIIS構成の問題を示しているようですか?
更新2:
わかりました。私の問題は期限切れのセッション/セキュリティに関連しているようです。ハイブリッド認証方式を使用していますが、問題が発生しています。
メインサイトはフォーム認証を使用していますが、Windows認証を実行してCookieを設定する別のサイトがあり、これを無効にすると問題が修正されました。
理由はまだわかりませんが、別の質問ではこれが良いと思います。
彼の投稿が私を正しい答え/説明に導いてくれるので、私はsmartcavemanの答えを正しいものとしてマークしています。
c# - asp net mvcでC#コードからファイルを投稿するには?
HttpPostedFileBase picture
引数として取るコントローラーメソッドがあります。もちろん、フォームから画像をロードするために使用されます。しかし今、そのメソッドを使用して、別のメソッドからファイルをロードしたいと考えています。画像へのパスを使用して、コードで HttpPostedFileBase ファイルを作成できますか? または、別のソリューションが優先される可能性がありますか?
さて、コード:
ホント、体型なんてどうでもいい。もちろん、私は次のようなものを持っています:
そして、私は次のようなものが欲しい:
c# - MVC3 HttpPostedFileBase が画像かどうかを確認する方法
次のようなコントローラーがあります。
uploadFile が画像 (jpg、png など) であることを確認するにはどうすればよいですか?
私は試してみました
bitmapImage を作成できない場合は ArgumentException をスローします。
たとえば、uploadFile.FileName を見て、より良い方法はありますか?
c# - MVC3ファイルアップロードの検証が正しく行われない
MVC 3 Webアプリケーションにファイルアップロード機能があり、これらの属性を使用してFileSizeとFileTypeを検証しようとしています。
HTMLは次のとおりです。
ファイルを選択すると、すべてが完璧に機能します。ただし、ファイルが選択されていない場合でも、FileSizeまたはFileTypeの検証が実行され、検証エラーが発生します。POSTでファイルが必要にならないようにするにはどうすればよいですか?
asp.net-mvc - 検証エラーを表示するために HttpPostedFileBase を返す
画像を MVC コントローラー アクションにアップロードしようとして検証エラーが発生した場合、各ボタンをクリックしてすべてのファイルを再度検索する必要があります。
で構成されるビューがある場合
そして、次のようなコントローラーアクション
ファイルは問題なくサーバーに投稿されますが、モデルの検証エラーが発生した場合、ユーザーが再度アップロードする必要がないように、モデルとファイルを返す方法はありますか?
httppostedfilebase - httppostedfilebase を SQL で画像として保存する
MVC コードで httppostedfilebase タイプとして画像を取得している状況があります。SQL データベースに対応する画像タイプの列があります。
この httppostedfilebase タイプを DB のイメージとして変換/保存する方法を知る必要があります。
asp.net-mvc - ASP.NETMVCHttpPostedFIleBaseがnull
私@Html.BeginForm
のビューには、ユーザーが画像をアップロードして画像に関する詳細を追加できるようにすることを想定しています。
ビューは次のとおりです。
私は@Html.BeginForm
これの直前に別のものを持っています。それは何か他のもののためです。
これは私のコントローラーです:
ブレークポイントをに入れるとSaveImage
、ファイルは常にnullになります。大きい画像と小さい画像の両方をアップロードしようとしました。
誰かが私がひどく間違っているところを見ることができますか?