从PictureBox将图像上传到服务器

用户名

我有一个pictureBox和一个在form1上的按钮。单击该按钮后,应将文件上传到服务器。现在,我正在使用以下方法。首先将图像保存在本地,然后上传到服务器:

Bitmap bmp = new Bitmap(this.form1.pictureBox1.Width, this.form1.pictureBox1.Height);
Graphics g = Graphics.FromImage(bmp);
Rectangle rect = this.form1.pictureBox1.RectangleToScreen(this.form1.pictureBox1.ClientRectangle);
g.CopyFromScreen(rect.Location, Point.Empty, this.form1.pictureBox1.Size);
g.Dispose();
 bmp.Save("filename", ImageFormat.Jpeg);

然后上传该文件:

using (var f = System.IO.File.OpenRead(@"F:\filename.jpg"))
{
    HttpClient client = new HttpClient();
    var content = new StreamContent(f);
    var mpcontent = new MultipartFormDataContent();
    content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
    mpcontent.Add(content);
    client.PostAsync("http://domain.com/upload.php", mpcontent);
}

我不能在StreamContent中使用位图类型。如何直接从pictureBox流式传输图像,而不是先将其另存为文件?

我使用MemoryStream提出了以下代码,但是使用此方法上传的文件大小为0。为什么?

byte[] data;

using (MemoryStream m = new MemoryStream())
{
    bmp.Save(m, ImageFormat.Png);
    m.ToArray();
    data = new byte[m.Length];
    m.Write(data, 0, data.Length);

    HttpClient client = new HttpClient();
    var content = new StreamContent(m);
    var mpcontent = new MultipartFormDataContent();
    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
    mpcontent.Add(content, "file", filename + ".png");
    HttpResponseMessage response = await client.PostAsync("http://domain.com/upload.php", mpcontent);
    //response.EnsureSuccessStatusCode();
    string body = await response.Content.ReadAsStringAsync();
    MessageBox.Show(body);
}
用户名

我不确定这是否是正确的方法,但是我已经解决了它,方法是创建一个新的流,然后将较旧的流复制到该流:

using (MemoryStream m = new MemoryStream())
{
    m.Position = 0;
    bmp.Save(m, ImageFormat.Png);
    bmp.Dispose();
    data = m.ToArray();
    MemoryStream ms = new MemoryStream(data);
    // Upload ms
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将图像上传到服务器

来自分类Dev

通过javascript将图像上传到服务器

来自分类Dev

将图像上传到服务器时重命名

来自分类Dev

正在将图像上传到服务器,但未显示

来自分类Dev

将图像上传到服务器不起作用

来自分类Dev

将图像从android上传到PHP服务器

来自分类Dev

无法将图像上传到服务器ios

来自分类Dev

从iOS将图像上传到PHP服务器

来自分类Dev

将压缩图像上传到PHP服务器

来自分类Dev

ExpressJS Multer:将图像上传到服务器

来自分类Dev

Flutter Dio:无法将图像上传到服务器

来自分类Dev

iOS通过ASP将图像上传到服务器

来自分类Dev

无法将图像上传到服务器ios

来自分类Dev

将压缩的图像上传到PHP服务器

来自分类Dev

将图像从android上传到PHP服务器

来自分类Dev

PHP将图像上传到服务器

来自分类Dev

从Android设备将图像上传到服务器

来自分类Dev

正在将图像上传到服务器,但未显示

来自分类Dev

将图像上传到服务器symfony2

来自分类Dev

将转换后的图像上传到服务器

来自分类Dev

将图像上传到服务器不起作用

来自分类Dev

使用AsyncTask将图像或视频上传到服务器

来自分类Dev

将调整大小的表单图像上传到服务器

来自分类Dev

无法将经过改造的图像上传到服务器

来自分类Dev

Java Android将图像上传到服务器

来自分类Dev

Android无法将图像上传到服务器

来自分类Dev

Xamarin:将图像上传到服务器

来自分类Dev

使用tinymce将图像上传到服务器

来自分类Dev

使用改造将图像上传到服务器