2012-02-15 4 views
0

私はすべてのファイルを表示するFile.aspxフォームを持っています。ファイルのアップロード後にリダイレクトする方法は?

私はファイルをアップロードするときにupload.aspxファイルを使用してC#コードを実行しています。

最後に、新しいファイルのアップロードを表示するために自動的にページを更新したいのですが、すべてのパラメータが良好であってもリダイレクトしていないようです。

これは私が

 HttpContext postedContext = HttpContext.Current; 
     string param = Request.UrlReferrer.Query; 
     string param2 = Request.UrlReferrer.Query; 
     var url = HttpUtility.ParseQueryString(param).Get("projectName"); 
     var url2 = HttpUtility.ParseQueryString(param2).Get("projectId"); 
     HttpPostedFile file = postedContext.Request.Files[0]; 
     string name = file.FileName; 
     byte[] binaryWriteArray = new 
     byte[file.InputStream.Length]; 
     file.InputStream.Read(binaryWriteArray, 0, 
     (int)file.InputStream.Length); 
     //FileStream objfilestream = new FileStream(Server.MapPath("~\\" + "\\Files\\" + url + "\\" + name), FileMode.Create, FileAccess.ReadWrite); 
     FileStream objfilestream = new FileStream(("C:\\inetpub\\wwwroot\\Clientportal\\Files\\" + url + "\\" + name), FileMode.Create, FileAccess.ReadWrite); 
     objfilestream.Write(binaryWriteArray, 0, binaryWriteArray.Length); 

     objfilestream.Close(); 
     string[][] JaggedArray = new string[1][]; 
     JaggedArray[0] = new string[] { "File was uploaded successfully" }; 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     string strJSON = js.Serialize(JaggedArray); 
     Response.Write(strJSON); 

     Response.Redirect(string.Format("Files.aspx?projectId={0}&projectName={1}", url2, url)); 

任意のアイデアを使用するコードですか?どこでもこのresponse.redirectを使用し、コードが同じコードファイルにある場合にのみ動作します。

別のコードファイルからリダイレクトしようとしている可能性がありますか?

+2

リダイレクトの前に何かを出力することはできますか?リダイレクションとは、単にヘッダーでクライアントに送信されるロケーションヘッダーのことです。しかし、その前にはHEADERだけがあり、ページには内容があります。それは私がそれに慣れている方法です。だから、Response.writeをコメントアウトしてもう一度チェックしてみてください。 –

+0

機能しません。このリダイレクトを使用すると、同じコードファイル内にあるときにうまく動作するので、奇妙です。しかしここで私は別のものを呼んでおり、リダイレクトしたくない。私はJsonのResponseを削除しましたが、まだ何も変更していません。 – Kiwimoisi

答えて

1

私はJavaScriptを使用して、クライアント側でのリロードを行うことを試みる:

window.location.reload() 

あなたが応答として取得するJSONはあなたが提出するためのAJAXを使用していない場合 を「ファイルが正常にアップロードされた」というメッセージが含まれている場合あなたはjsonを書く必要はありません。ファイルのアップロード操作のステータスを識別するパラメータを含む適切なURLにリダイレクトすれば十分です。

+0

Window.location.reaload()は許可されていません – Kiwimoisi

+0

あなたの権利を考えてください。情報から私は、OPはファイルを見るためにファイルまたはページにリダイレクトする何らかの成功ページを望んでいると思います。だから、クライアント側のリダイレクトが方法になります。しかし、あなたはwindow.location = "example.com"を使うことはできません。 ? –

+0

Response.Write(strJSON)をコメントアウトすることができます。 コードが機能し始めます。 –