0

有没有办法将字符串转换为 HttpFilePostedBase?我目前正在使用Ajax File upload。但它返回的值是字符串。但是我的方法是要求HttpFilePostedBase有没有办法将其转换或转换为HttpFilePostedBase

这是我上传文件的示例方法。

public bool uploadfiles(HttpPostedFileBase filedata)
{
bool status = false;
//code for uploading goes here
return status;
}

如果 ajax 文件上传正在传递字符串,我该如何调用此方法?

4

2 回答 2

0

你不能。HttpContext.Request.Files您可以通过该属性访问发布到 aspx 页面的文件。

于 2012-08-06T08:27:40.750 回答
0

您使用的是 IE 还是 Chrome/Firefox?因为,不同的浏览器以不同的方式上传文件。IE 通过 Requres.Files 上传文件,但其他人qqfile在查询字符串中使用。在此处查看如何将值与 mvc 一起用于不同的浏览器

编辑:那好吧,这个怎么样。这是一个对我有用的例子:

        public void ControllerUploadHandler()
    {
        // Set the response return data type
        this.Response.ContentType = "text/html";

        try
        {
            // get just the original filename
            byte[] buffer = new byte[Request.ContentLength];
            if (Request.QueryString["qqfile"] != null)
            {
                using (BinaryReader br = new BinaryReader(this.Request.InputStream))
                    br.Read(buffer, 0, buffer.Length);
            }
            else if (Request.Files.Count > 0)
            {
                HttpPostedFileBase httpPostedFileBase = Request.Files[0] as HttpPostedFileBase;
                using (BinaryReader br = new BinaryReader(httpPostedFileBase.InputStream))
                    br.Read(buffer, 0, buffer.Length);
            }
            else
                this.Response.Write(" {'success': false }");

            // return the json object as successful
            this.Response.Write("{ 'success': true }");
            this.Response.End();
            return;
        }
        catch (Exception)
        {
            // return the json object as unsuccessful
            this.Response.Write("{ 'success': false }");
            this.Response.End();
        }
    }
于 2012-08-06T08:47:07.260 回答