我有一个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,只有当代码在同一个代码文件中时它才有效...
也许是因为我尝试从另一个代码文件重定向?
答案 0 :(得分:1)
我会尝试使用javascript在客户端重新加载:
window.location.reload()
如果您作为回复获得的JSON包含消息“文件已成功上传” 如果你没有使用ajax来提交文件,则不需要编写json。它足以重定向到包含标识文件上载操作状态的参数的合适URL。