Я впервые работаю над UWP, и я не могу добавить изображение в базу данных Mysql с помощью PHP, и я должен добавить его путь в базу данных.
Я не могу использовать 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, но я не уверен в этом.
Прочитайте файл, используя PHP, и вставьте его в базу данных.
Имейте в виду, чем больше изображение, тем длиннее строка.
$data = file_get_contents('/pics/item.png');
return $data;
Это вернет данные (с картинки)
Других решений пока нет …