【问题标题】:how to save an image from UWP into MYsql using php如何使用 php 将 UWP 中的图像保存到 MYsql
【发布时间】:2016-06-27 07:47:21
【问题描述】:

这是我第一次在 UWP 上开发,我无法使用 PHP 将图像添加到 Mysql 数据库中,我必须在数据库中添加它的路径。

我不能使用 sqlite 或任何其他数据库,因为我的同事已经开始使用 Mysql。 谁能帮我或举个例子 非常感谢您的帮助(我被困在这里)

所以,这是我用来从我的画廊上传所选图像的 UWP 代码

private Stream stream = new MemoryStream();
        private CancellationTokenSource cts;

    public MainPage()
    {
        this.InitializeComponent();
    }

    private async void buttonUpload_Click(object sender, RoutedEventArgs e)
    {
        FileOpenPicker open = new FileOpenPicker();
        open.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
        open.ViewMode = PickerViewMode.Thumbnail;

        // Filter to include a sample subset of file types
        open.FileTypeFilter.Clear();
        open.FileTypeFilter.Add(".bmp");
        open.FileTypeFilter.Add(".png");
        open.FileTypeFilter.Add(".jpeg");
        open.FileTypeFilter.Add(".jpg");

        // Open a stream for the selected file
        StorageFile file = await open.PickSingleFileAsync();

        // Ensure a file was selected
        if (file != null)
        {
            // Ensure the stream is disposed once the image is loaded
            using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read))
            {
                BitmapImage bitmapImage = new BitmapImage();
                await bitmapImage.SetSourceAsync(fileStream);
                fileStream.AsStream().CopyTo(stream);
                img.Source = bitmapImage;
            }
        }
    }

    private async void submit_Click(object sender, RoutedEventArgs e)
    {         
        Uri uri = new Uri("http://localhost/mydatabase/add.php");
        HttpClient client = new HttpClient();
        HttpStreamContent streamContent = new HttpStreamContent(stream.AsInputStream());
        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, uri);
        request.Content = streamContent;
        HttpResponseMessage response = await client.PostAsync(uri, streamContent).AsTask(cts.Token);

        `

这是我正在使用的 php

 <?php
 if($_SERVER['REQUEST_METHOD']=='POST'){
  $UserName = $_POST['UserName'];
 $UserImage = $_POST['UserImage'];
 require_once('conn.php');
 $sql ="SELECT  UserId FROM user";
 $res = mysqli_query($connect,$sql);
 $UserId =0 ;
 while($row = mysqli_fetch_array($res)){     
 $UserId = $row['UserId'];
 $UserId = $UserId+1;
 }
 $path = "UserImage/$UserId.png";
 $actualpath = "http://localhost/mydatabase/$path";
 $sql = "INSERT INTO user (UserId,UserName,UserImage) VALUES ('$UserId','$UserName','$actualpath')";
 if(mysqli_query($connect,$sql)){
 file_put_contents($path,base64_decode($UserImage));
 echo "Successfully Uploaded";
 } 
 mysqli_close($connect);
 }else{
 echo "Error";
 }
 ?>

我得到的只是我创建的文件夹中的空图像......显然我在从 UWP 上传图像后遇到了问题,但我不确定。

【问题讨论】:

  • 请添加详细信息以缩小答案集或隔离可以在几段中回答的问题。您的问题是在 UWP 客户端还是在 PHP 服务器中?最好能附上一份迄今为止为解决问题所做的工作的总结,以及您在解决问题时遇到的困难的描述。
  • 是的,,,请检查我编辑的问题..谢谢
  • 我对PHP不熟悉,所以不知道你的PHP代码对不对。但您似乎将UserNameUserImage 作为表单数据发布。在这种情况下,您可以使用HttpMultipartFormDataContent class 发送文本和文件混合内容。你最好先确保你的PHP服务器运行良好,然后再处理UWP客户端。
  • 是的,它工作得很好,我在 Android 中使用了相同的文件,但唯一的区别是我的输出是字符串:这就是我使用“file_put_contents($path,base64_decode($UserImage) ); ".. 但现在在 UWP 中我不知道该怎么做,因为我的输出是图像流 ...
  • 您发布的 UWP 代码仅将图像流发布到服务器。使用此代码您不会在服务器中获得UserNameUserImage,您需要更改您的PHP 代码以接收流。如果您想在服务器中获取UserNameUserImage 作为表单数据,您需要更改您的UWP 代码并使用我提到的HttpMultipartFormDataContent 类。但是,a quick search 之后,PHP 似乎使用$_FILES 来获取发布的文件。所以我建议你先创建一个html页面来测试你的服务器,然后根据你的服务器编写UWP代码。

标签: c# php mysql win-universal-app


【解决方案1】:

使用 PHP 读取文件并将其插入数据库。 请记住,图像越大,字符串越长。

$data = file_get_contents('/pics/item.png');

return $data;

这将返回数据(来自图片)

【讨论】:

  • 谢谢,你能给我一个例子吗.. 非常感谢你的帮助
  • 例如。使用 file_get_contents('URL') 或文件路径,这将返回您可以输入到 mysql 的数据。它非常非常大
  • 谢谢,我以为你已经有或发布了一些项目或完整的例子,我可以理解整个过程..我真的不知道从哪里开始..再次感谢
猜你喜欢
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多