質問

ASP Fileuploadコントロールがあり、アップロードしています。

C:\Documents and Settings\abpa\Desktop\TTPublisher\apache-tomcat-6.0.26\webapps\ttpub\WEB-INF\classes\org\gtfs\tmp\GTFS_Rail\routes.txt

以下のコードを使用して、この文字列全体をつかむためのC#コードは何ですか:

var pathOfCsvFile = Server.MapPath(ImportRoutes.FileName);
var adapter = new GenericParsing.GenericParserAdapter(pathOfCsvFile);
DataTable data = adapter.GetDataTable();

server.mappathが変更する必要があることを知っています。

アップデート:

使用 System.IO.Path.GetFullPath 以下の出力を教えてくれました。

pathOfCsvFile = "C:\\Program Files\\Common Files\\Microsoft Shared\\DevServer\\10.0\\routes.txt"

役に立ちましたか?

解決

クライアントとサーバーの動作を混ぜ合わせています。これは、ローカルでテストするときに簡単です。あなたが抱えている問題は、fileuploadControl(および一般的にHTMLファイルアップロード)が特別に設計されていることです いいえ を提供します 満杯 ファイルへのパス。それはプライバシー侵害です。何それ アップロードされたファイルのバイナリデータが提供するように設計されています。具体的には、fileuploadcontrol:filebytesまたはfilecontentのプロパティを照会する必要があります。

問題をさらに明確にするために、ブラウザのユーザーが実際にWebサーバーとは物理的に異なるマシン(通常のケース)にあった場合はどうなりますか?ファイルのフルパスは何が良いでしょうか クライアントマシンで あなたになります サーバ?

他のヒント

server.mappathは、アプリケーションルートの下または下のファイルへの物理パスを返します。そのパスリストがアプリケーションルートの外側にある場合、server.mappathは機能しません。

Virtual Directoryを使用してファイルアップロードを保持するために使用するフォルダーにマップできます。これをServer.Mappathで発見できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top