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

できません。プロパティを介して aspx ページに投稿されたファイルにアクセスできますHttpContext.Request.Files

于 2012-08-06T08:27:40.750 に答える
0

IE または Chrome/Firefox を使用していますか? ブラウザが異なれば、ファイルのアップロード方法も異なります。IE は Requres.Files を介してファイルをアップロードしますが、他のユーザーqqfileはクエリ文字列で使用します。さまざまなブラウザーの mvc で valum を使用する方法については、こちらをご覧ください。

編集:さて、これはどうですか。これは私のために働いた例です:

        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 に答える