0

Http POSTページへのリクエストを行うAndroidアプリケーションがありasp.netます。

このリクエストを受け取り、そのコンテンツをファイルに保存するasp.netページを実装したいと思います(ファイルのアップロードです)。

私にサンプルを与えることは非常に高く評価されます

4

2 に答える 2

1

asp.netから画像を受け取るアプリケーションで、そのAndroidように受け取る単純なパラメーターについて、これを行う方法は次のとおりです

context.Request["Yourparameter"]


public class RecieveMail : IHttpHandler
{
    private string _emailAdressTo;
    private string _imageUrl;
    private EmailFactory _emailFactory;

    public void ProcessRequest(HttpContext context)
    {
        ImageFactory factory = new ImageFactory(context);
        try
        {
            _imageUrl = factory.SaveImage("uploaded");

            if (string.IsNullOrEmpty(context.Request["from"]) || string.IsNullOrEmpty(context.Request["to"])) return;

            _emailFactory = new EmailFactory(_imageUrl);
            if (_emailFactory.SendMail(context.Request["from"], context.Request["to"]))
                context.Response.Write(!factory.DeleteImage(_imageUrl) ? "Email sent" : "Image deleted");
        }
        catch (Exception ex)
        {
            context.Response.Write(" error converting " + ex.Message);
        }
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }    
}

// ここに画像保存ファクトリーがあります

public class ImageFactory
{
    private readonly HttpContext _context;
    private Image _image;

    public ImageFactory(HttpContext context)
    {
        _context = context;
    }

    /// <summary>
    /// Get image by name from post
    /// </summary>
    /// <param name="ctxImageParamName">image that have been posted in email</param>
    /// <returns></returns>
    public string SaveImage(string ctxImageParamName)
    {
        if (string.IsNullOrEmpty(_context.Request[ctxImageParamName])) return null;
        string url = GenerateImagePath("FrameMe");
        ByteArrayToImageAndSave(Decode(_context.Request[ctxImageParamName]), url);
        return url;
    }

    public bool DeleteImage(string url)
    {
        try
        {
            if (!File.Exists(url)) return false;
            File.Delete(url);
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }    
    }

    private string GenerateImagePath(string directory)
    {
        return _context.Server.MapPath(string.Format("~/Images/{1}/Image1_{0}.jpg", DateTime.Now.ToString("ddMMyyyyHHmmss"), directory));
    }

    private void ByteArrayToImageAndSave(byte[] byteArrayIn, string imageUrl)
    {
        try
        {
            MemoryStream ms = new MemoryStream(byteArrayIn);
            _image = Image.FromStream(ms);
            _image.Save(imageUrl, new ImageFormat(Guid.NewGuid()));
            _image.Dispose();
        }
        catch (Exception ex)
        {
            _image = null;
        }
    }

    private byte[] Decode(string str)
    {
        return Convert.FromBase64String(str);
    }
}
于 2013-02-24T08:19:13.713 に答える
0

asp.netのRequestオブジェクトを使用して、ページに投稿された情報を取得します。

例えば:

Request.Form["NameOfVar"]
于 2013-02-24T08:11:31.700 に答える