2013-02-25 10 views
6

.NETにファイルをアップロードするために、POSTリクエストをasp.net URLにするクライアントアプリケーションがあります。POSTリクエストの内容を.NETのファイルとして保存する方法

asp.netページの作成方法はこのリクエストを受け取り、ファイルとして保存しますか?

@ Darin Dimitrov 私はあなたのコードを試しましたが、私は500 internal server errorをどのように追跡できますか?

+0

としてアップロードされていないと仮定すると、

HttpContext.Current.Request.SaveAs(filename,includeHeaders) 

を使用して要求全体を保存することができます。 AJAXのように見えるIE <= 9のファイルをアップロードするためにIFRAMEポストを実行している場合は、ファイルを含むHTMLフォームを作成し、.NETページにポストする必要があります。それはまさに私がやろうとしていることです。したがって、質問は、ASPXページが投稿されたデータからファイルを抽出する方法です。何が問題なのですか? – Sean

+1

@Seanに同意します...これは有効な質問です...なぜそれが閉じられたのかわかりません。 – FastTrack

+0

私は気づいたことがありますが、時には最高の英語で言い表されていないので、質問は閉じられています。質問を閉じることが絶対に愚かな理由です。質問の内容が正当なものであれば、何か問題はありますか? –

答えて

17

クライアントがmultipart/form-dataリクエストエンコーディング(ファイルのアップロードの標準)を使用している場合は、Request.Filesコレクションからアップロードしたファイルを取得できます。たとえば、次のように

protected void Page_Load(object sender, EventArgs e) 
{ 
    foreach (HttpPostedFile file in Request.Files) 
    { 
     var fileName = Path.GetFileName(file.FileName); 
     var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
     file.SaveAs(path); 
    } 
} 

か、クライアントが使用する名前を知っている場合、あなたはそれを直接アクセスすることができました:

HttpPostedFile file = Request.Files["file"]; 

クライアントが要求するための標準エンコーディングを使用していない一方場合Request.InputStreamからファイルを読む必要があります。

+0

あなたは私に完全な例を靴で味わってください。私は.NETで熟練していません。私はアンドロイドクライアントでやったことがあり、サーバー側のコンポーネントを作りたいですか? – Adham

+0

確かに、私は答えを例文で更新しました。 –

+0

ありがとうございます、これはクライアント側として動作しますか?http://stackoverflow.com/questions/1067655/how-to-upload-a-file-using-java-httpclient-library-working-with-php- strange-pr/1068132#1068132 – Adham

4

あなたはまた、私は、これは有効な質問だと思うデータがmultipart/form-data

+0

tnx、私はmvcまたはwebformsでアップロードする際にSimple-Ajax-Uploaderでこのコードを使用します。 https://github.com/LPology/Simple-Ajax-Uploader –

関連する問題