文件上传后如何重定向?

时间:2012-02-15 12:42:10

标签: c# asp.net

我有一个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,只有当代码在同一个代码文件中时它才有效...

也许是因为我尝试从另一个代码文件重定向?

1 个答案:

答案 0 :(得分:1)

我会尝试使用javascript在客户端重新加载:

window.location.reload()

如果您作为回复获得的JSON包含消息“文件已成功上传” 如果你没有使用ajax来提交文件,则不需要编写json。它足以重定向到包含标识文件上载操作状态的参数的合适URL。