2012-02-15 21 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

ASP.NET是否允許您在重定向之前輸出任何內容?重定向只是一個位置標題,在標題中發送給客戶端。但是在這之前它只有HEADER,並且頁面獲得內容。或者這就是我習慣的方式。所以請嘗試註釋掉Response.write並再次檢查? – 2012-02-15 12:52:18

+0

沒有用。這很奇怪,因爲當我使用這個重定向時,它在同一個代碼文件中工作的很好。但在這裏我打電話給另一個,它不想重定向。我沒有刪除Json的響應,它仍然沒有改變任何東西。 – Kiwimoisi 2012-02-15 16:55:10

回答

1

我會嘗試用JavaScript做客戶端重裝:

window.location.reload() 

,如果你得到的響應JSON包含消息如果你不使用AJAX提交「文件上傳成功」 你不需要寫json文件。足夠重定向到包含標識文件上載操作狀態的參數的合適url。

+0

Window.location.reaload()不允許 – Kiwimoisi 2012-02-15 12:53:37

+0

想你的權利。從信息我認爲OP想要某種成功頁面重定向到文件或頁面來查看文件。所以客戶端重定向將是方式。但不能使用window.location =「example.com」; ? – 2012-02-15 12:53:56

+0

你可以嘗試註釋掉Response.Write(strJSON); 您的代碼將開始工作。 – 2012-02-15 12:58:46

相關問題