为什么当我尝试使用Windows Phone上传图像时,它会随机上传?

费德里科·纳瓦雷特(Federico Navarrete)

我试图将图像从Windows Store应用程序(Windows Phone 8.1)上传到托管(使用PHP),但是总是在我“上传”图像时,并且总是将其结果“图像”检查为损坏的文件。我认为这与字节数组转换有关,但是我还没有找到另一种方法。这是我的代码:

C#代码:

byte[] ConvertBitmapToByteArray()
{
    WriteableBitmap bmp = bitmap;

    using (Stream stream = bmp.PixelBuffer.AsStream())
    {
        MemoryStream memoryStream = new MemoryStream();
        stream.CopyTo(memoryStream);
        return memoryStream.ToArray();
    }
}

public async Task<string> Upload()
{
    try
    {
        using (var client = new HttpClient())
        {
            using (var content =
                new MultipartFormDataContent())
            {
                byte[] data = ConvertBitmapToByteArray();
                content.Add(new StreamContent(new MemoryStream(data)), "userfile", fileNewImage);

                using (
                   var message =
                       await client.PostAsync("http://xplace.com/uploadtest.php", content))
                {
                    var input = await message.Content.ReadAsStringAsync();

                    return input;
                }
            }
        }
    }
    catch (Exception ex)
    {
        return null;
    }
}

PHP代码:

<?php
    header('Content-Type: application/json');
    $uploaddir = getcwd();
    $uploadfile = $uploaddir . "/" . basename($_FILES['userfile']['name']);

    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo '{"result": "sucessfull"}';
    } else {
       echo '{"result": "-1"}';
    }
?>

我希望有人能给我一个关于我的错误以及如何解决的想法。预先感谢您的宝贵知识。

彼得顿

你需要通过你byte[] data通过BitmapEncoder把它转换成上传之前常见的图像格式(如BMP,PNG,JPEG)。目前,您只是发送原始ARGB像素数据,而没有有关应如何解释的信息。

例如,要编码为BMP:

...
byte[] data = bitmap.PixelBuffer.ToArray();

using (var stream = new InMemoryRandomAccessStream())
{
    // encoder *outputs* to stream
    var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.BmpEncoderId, stream);

    // encoder's input is the bitmap's pixel data
    encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, 
        (uint)bitmap.PixelWidth, (uint)bitmap.PixelHeight, 96, 96, data);

    await encoder.FlushAsync();

    content.Add(new StreamContent(stream.AsStream()), "userfile", fileNewImage);
    ...
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我尝试添加VLC时,为什么SETX没有更新我的PATH?(Windows 7的)

来自分类Dev

当我尝试使用dplyr按组求和时,为什么dplyr忽略了我的组?

来自分类Dev

当我尝试使用MS AJAX PageMethods传递对象时,为什么我的参数为null

来自分类Dev

当我尝试使用htacces从laravel中删除公共目录时,为什么会出现错误

来自分类Dev

当我尝试使用Perl的substr提取git repo URL时,为什么会得到额外的]?

来自分类Dev

当我尝试在查询EF中使用“ Include(“ PropertyName”)“时,为什么会出现Argument异常?

来自分类Dev

当我尝试使用(来自 keySet())打印每个键时,为什么会得到对象地址?

来自分类Dev

当我尝试使用改造 2 上传图像时,我的 cursor.getString() 返回 null

来自分类Dev

当我尝试使用XSLT输出方法“ html”时,为什么我的SVG没有显示?

来自分类Dev

当我尝试使用猫鼬的“ findByIdAndRemove”方法时,为什么我的EJS变量返回“未定义”

来自分类Dev

当我已经设置了 URL 时,为什么我的嵌套资源表单尝试使用不存在的路径方法?

来自分类Dev

为什么Windows会报告当我尝试复制存储在NAS上的文件可能有害时?

来自分类Dev

在Python上使用BeautifulSoup4时,为什么当我尝试打印“ <p>”元素时,结果为'None'?

来自分类Dev

当我使用maven-release-plugin释放分支时,为什么它尝试从修订版0创建分支?

来自分类Dev

当我尝试使用实体框架将表单保存到测验模型中时,为什么会出现错误?

来自分类Dev

当我引入CSS变量时,为什么浏览器会尝试使用其他无效的属性声明?

来自分类Dev

当我尝试在此列表上使用迭代器时,为什么会引发此异常?

来自分类Dev

当我尝试使用vb.net单击asp.net按钮时,为什么会出现以下错误?

来自分类Dev

为什么当我尝试在 Slim3 中使用 PDO::PARAM_STR 时,Slim 返回错误?

来自分类Dev

为什么当我尝试使用 python 在表中插入一些值时,输出没有?

来自分类Dev

为什么当我使用QWebpage时什么也没显示

来自分类Dev

为什么当我尝试显示我的 ip usig Inet 时我的应用程序崩溃?

来自分类Dev

我正在尝试为正在使用的应用程序制作GUI,但是当我尝试打印全局变量时出现错误。为什么?

来自分类Dev

当我尝试在Eclipse中使用Struts上传和保存图像文件时,文件名显示为null

来自分类Dev

为什么当我尝试更改采样率时sox会损坏我的wav文件?

来自分类Dev

当我尝试从班级外部访问字段时,为什么没有调用我的getter方法?

来自分类Dev

当我尝试删除[]数组时,为什么我的程序会抛出SIGABRT?

来自分类Dev

当我尝试在结构数组中提供值时,为什么我的程序停止了?

来自分类Dev

当我尝试搜索时,为什么Chrome会将我发送到Google主页?

Related 相关文章

  1. 1

    当我尝试添加VLC时,为什么SETX没有更新我的PATH?(Windows 7的)

  2. 2

    当我尝试使用dplyr按组求和时,为什么dplyr忽略了我的组?

  3. 3

    当我尝试使用MS AJAX PageMethods传递对象时,为什么我的参数为null

  4. 4

    当我尝试使用htacces从laravel中删除公共目录时,为什么会出现错误

  5. 5

    当我尝试使用Perl的substr提取git repo URL时,为什么会得到额外的]?

  6. 6

    当我尝试在查询EF中使用“ Include(“ PropertyName”)“时,为什么会出现Argument异常?

  7. 7

    当我尝试使用(来自 keySet())打印每个键时,为什么会得到对象地址?

  8. 8

    当我尝试使用改造 2 上传图像时,我的 cursor.getString() 返回 null

  9. 9

    当我尝试使用XSLT输出方法“ html”时,为什么我的SVG没有显示?

  10. 10

    当我尝试使用猫鼬的“ findByIdAndRemove”方法时,为什么我的EJS变量返回“未定义”

  11. 11

    当我已经设置了 URL 时,为什么我的嵌套资源表单尝试使用不存在的路径方法?

  12. 12

    为什么Windows会报告当我尝试复制存储在NAS上的文件可能有害时?

  13. 13

    在Python上使用BeautifulSoup4时,为什么当我尝试打印“ <p>”元素时,结果为'None'?

  14. 14

    当我使用maven-release-plugin释放分支时,为什么它尝试从修订版0创建分支?

  15. 15

    当我尝试使用实体框架将表单保存到测验模型中时,为什么会出现错误?

  16. 16

    当我引入CSS变量时,为什么浏览器会尝试使用其他无效的属性声明?

  17. 17

    当我尝试在此列表上使用迭代器时,为什么会引发此异常?

  18. 18

    当我尝试使用vb.net单击asp.net按钮时,为什么会出现以下错误?

  19. 19

    为什么当我尝试在 Slim3 中使用 PDO::PARAM_STR 时,Slim 返回错误?

  20. 20

    为什么当我尝试使用 python 在表中插入一些值时,输出没有?

  21. 21

    为什么当我使用QWebpage时什么也没显示

  22. 22

    为什么当我尝试显示我的 ip usig Inet 时我的应用程序崩溃?

  23. 23

    我正在尝试为正在使用的应用程序制作GUI,但是当我尝试打印全局变量时出现错误。为什么?

  24. 24

    当我尝试在Eclipse中使用Struts上传和保存图像文件时,文件名显示为null

  25. 25

    为什么当我尝试更改采样率时sox会损坏我的wav文件?

  26. 26

    当我尝试从班级外部访问字段时,为什么没有调用我的getter方法?

  27. 27

    当我尝试删除[]数组时,为什么我的程序会抛出SIGABRT?

  28. 28

    当我尝试在结构数组中提供值时,为什么我的程序停止了?

  29. 29

    当我尝试搜索时,为什么Chrome会将我发送到Google主页?

热门标签

归档