gpt4 book ai didi

c# - Webservice PHP 不接收 base64 大图像

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:51 24 4
gpt4 key购买 nike

我有一个我无法解释的问题

我有一个 C# 程序发送图像(截图整个网页的一些 url)编码到 base64

    static string ImageToBase64(System.Drawing.Image image, System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();

// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}

// image is typeof Bitmap
string myImageData = ImageToBase64(image, System.Drawing.Imaging.ImageFormat.Jpeg);

using (WebClient client = new WebClient())
{
try
{

byte[] response = client.UploadValues("http://production/ws/imageBuilder", new NameValueCollection()
{
{ "myImageData", HttpUtility.UrlEncode(this.myImageData) }
{ "Url_", url.Authority },
{ "token", ImageHash }
});

Debug.WriteLine("Server Said: " + System.Text.Encoding.Default.GetString(response));

byte[] response2 = client.UploadValues("http://localhost/ws/imageBuilder", new NameValueCollection()
{
{ "myImageData", HttpUtility.UrlEncode(this.myImageData) }
{ "Url_", url.Authority },
{ "token", ImageHash }
});

Debug.WriteLine("Server Said: " + System.Text.Encoding.Default.GetString(response2));
}
catch(Exception e) {Debug.WriteLine(e.Message);}
}

在 PHP 方面我只是为了测试

        echo "length before decode ".strlen($_POST['myImageData']);
$imageData = base64_decode(urldecode($_POST['myImageData']));
echo "length after decode ".strlen($imageData);

返回大图(例如 1280 x 10 000)

[4908] Server Said: length before decode 0   length after decode 0 
[4908] Server Said: length before decode 1333258 length after decode 925151

所以在我的本地 WAMP 服务器上(在 Windows 7 上)我收到了图像,但在生产环境中(在 Linux 上)我什么也没收到。

但是对于尺寸为“1280 x 1024”的“小”图像没关系,我的变量 $_POST['myImageData'] 在生产中不是空的,它工作正常。

[4908] Server Said: length before decode 66292 length after decode 46210 
[4908] Server Said: length before decode 66292 length after decode 46210

更新: 图片是小型 JPG(介于 200ko 和 1.5mo 之间)。

在我的生产环境中的 php.in 上

upload_max_filesize = 20M
post_max_size = 18M

我在生产环境中的 Apache 是 mod_proxy

最佳答案

如果我不得不冒险猜测,我会说检查 php.ini 中的“post_max_size”参数。它在 linux 服务器上的设置可能低于 WAMP 服务器。

关于c# - Webservice PHP 不接收 base64 大图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28566940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com