問題タブ [transmitfile]
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.
c# - テキストファイルのmimeを取得する
urlmon.dllを使用するC#用に誰かが貼り付けたコードを使用しています。<= 256バイトを読み込み、データに基づいてmimeを返します。
問題は、cssファイルとテキスト/プレーンを区別できないことです。/style.cssに移動できますが、HTMLに含めると、CSSが表示されません。urlmon+context.Response.TransmitFileを使用して送信しています。
c# - Response.TransmitFileの完了時にコードを実行する
Response.TransmitFileを使用してWebサービスからファイルを取得しています。このプロセスにかかる時間をサーバーの観点から測定したいと思います。
この呼び出しの前後にティックカウントを取得しようとしましたが、それは転送にかかった時間を明確に表してはいませんでした。30MBのファイルに対して0.0016ミリ秒のような数値が返されました。:-)
何か案は?
c# - ファイル名と MIME の問題 - ASP.NET ダウンロード ファイル (C#)
ASP.NET アプリケーションで非常に奇妙な問題に直面しています。
ユーザーがファイルをダウンロードするボタンをクリックすると、Internet Explorer / Chrome / Firefox は保存ダイアログを表示しますが、ファイルの名前は ASPX ページの名前です(たとえば、ページの名前が Download.aspx の場合、ダウンロード ダイアログに「ファイル」Download.zip)。MIME タイプで遊んでいると、ダウンロード ダイアログに "Download.aspx" と表示されることがあります。ページをダウンロードしようとしているようですが、実際には正しいファイルです。
これは ZIP 拡張子で発生し、これが私のコードです (かなり標準的だと思います):
GetContentType 関数は、ファイルの MIME を返すだけです。application/x-zip-compressed、multipart/x-zip、そしてもちろんapplication/zipで試しました。application/zip を使用すると、Internet Explorer 8 で XML エラーが表示されます。
どんな助けでも大歓迎です。
ご挨拶、
c# - ファイルがダウンロードされたかどうかを確認する方法は?
ユーザーがファイルをダウンロードできるようにする次のコードがあります。彼らがファイルを正常にダウンロードしたかどうか (可能であれば) 知る必要があります。ダウンロードに成功したかどうかを知るために関連付けることができるコールバックはありますか?
asp.net - UNC共有を使用したResponse.TransmitFile()(ASP.NET)
このページのコメント:
http://msdn.microsoft.com/en-us/library/12s31dhy%28v=VS.90%29.aspx
..TransmitFile()はUNC共有では使用できないことを示しています。私の知る限り、これは事実です。試行すると、イベントログに次のエラーが表示されます。
推奨される代替方法はWriteFile()を使用することですが、ファイルをメモリにロードするため、これには問題があります。私のアプリケーションでは、ファイルは> 200MBであるため、これはスケーリングされません。
ASP.NETに、ユーザーにファイルをストリーミングするための方法はありますか?
- スケーラブル(ファイル全体をRAMに読み込んだり、ASP.NETスレッドを占有したりしません)
- UNC共有で動作します
ネットワークドライブを仮想ディレクトリとしてマッピングすることは、私たちの選択肢ではありません。ファイルをローカルWebサーバーにもコピーしないようにします。
ありがとう
file - 応答送信ファイル
ダウンロード リンクをクリックすると、ユーザーにファイルを配信する次のコードがあります。セキュリティ上の理由から、ファイルに直接リンクすることはできないため、これは URL をデコードしてファイルを送信するように設定されています。
しばらくは正常に動作していましたが、最近、ファイルのダウンロードが開始されるという問題が発生し始めましたが、ファイルのサイズがわかりません。
このため、ダウンロードを停止する必要があるときに停止しません。
ファイルは約 99 MB ですが、ダウンロードすると、ブラウザは 100 MB を超えてダウンロードし続けます。何をダウンロードしているのかわかりませんが、キャンセルしないと止まりません。
TransmitFile
それで、私の質問は、適切なタイミングで停止するように、ファイルのサイズも送信されるようにするための代替手段または方法はありますか?
コードは次のとおりです。
WriteFile
ファイルが非常に大きいため、ファイル全体をメモリにロードしたくないため、使用したくありません。
ありがとう。
c++ - TransmitFile の呼び出しが他のメソッドと比べてパフォーマンスが悪いのはなぜですか?
最初に、少し背景を説明します。私は、個人プロジェクト用の基本的な FTP サーバーを作成しています。現在、ファイルの取得に取り組んでいます。私の現在の実装は次のようになります。
動作しますが、パフォーマンスには疑問があります。最初は、転送は約 10 MB/秒で始まりますが、ゆっくりと約 3 MB/秒まで減少します。FileZilla Server と IIS FTP を使用して、30 MB/秒を超える一貫した転送速度を維持します。したがって、私はそれが十分に機能していないことを知っています。バッファサイズをいじってみましたが、パフォーマンスは向上しません。ファイルを転送するためのより効率的な方法について提案がある場合は、お知らせください。API ドキュメントは、TransmitFile が私のアプリケーション用に最適化されていることを示唆しているようです。
[Windows API の知識がないことをお許しください。]
また、すべてのソケットは localhost で開かれます。
c# - C# Response.WriteFile と Response.TransmitFile のファイルサイズの問題
サーバー上に 5Mb の pdf があり、writeFile を使用してこのファイルをダウンロードすると、15Mb のダウンロードが得られますが、transmitfile では正しい 5Mb のファイルサイズが得られます...
これは、サーバー上の writeFile のメモリへのある種の圧縮解除によるものですか? 誰かが同じことが起こっているのを見たのだろうか...
(ps は、iis7 に移行してから気付いただけでしょうか??)
コードは...
c# - 転送後にサーバーから削除する必要がある大きなファイルのWriteFileとTransmitFile
大きなファイルのユーザーダウンロードをWebブラウザーにトリガーする必要があります。そこで、サーバー上で転送するファイルを作成し、その後すぐに削除します。おそらくResponse.TransmitFileまたはResponse.WriteFile...を使用する必要があることを確認するのに十分な例を見つけましたが、両方に問題があると聞いています。
WriteFileは同期的ですが、ユーザーに送信する前にファイルをメモリにバッファリングします。私は非常に大きなファイルを扱っているので、これは問題を引き起こす可能性があります。
TransmitFileはローカルでバッファリングしないため、大きなファイルに対しては機能しますが、非同期であるため、TransmitFileを呼び出した後にファイルを削除できません。どうやらファイルをフラッシュしても、ファイルを削除できるとは限りませんか?
これに対処する最良の方法は何ですか?
BinaryWriteもあります...ファイルストリームをループして、セグメントにコピーできますか?
asp.net - ASP.NET TransmitFile によりサイトがブロックされる
TransmitFile を使用してファイルを送信するたびに、ファイルが完了するまで、sirte はユーザーに対してブロックされます。IOW、ユーザーはサイトをナビゲートできません。
ユーザーが転送をキャンセルした場合でも、サイトがタイムアウトするか、データの送信が完了するまでブロックされます。どちらかはわかりませんが、たとえば、ダウンロードを開始した直後に 30 MB のファイルをキャンセルした場合、10 MB のファイルよりも回復に時間がかかることがわかります。
関連するコードは次のとおりです。