Мне интересно, как хранить файлы, загруженные на страницу, в настройки?Сохраните файлы в приложении WPF. C#
Например, текстовые файлы
Мне интересно, как хранить файлы, загруженные на страницу, в настройки?Сохраните файлы в приложении WPF. C#
Например, текстовые файлы
Это потому, что вы не сохраняете изображение. Я немного смущен тем, что вы подразумеваете под загрузкой. Но я пытаюсь объяснить, что, я думаю, вам поможет.
Вы должны сделать свой «Загрузить» где-то около Save the image
:
if (op.ShowDialog() == true)
{
//Save the image
image1.Source = new BitmapImage(new Uri(op.FileName));
MessageBox.Show("File uploaded sucessfully");
}
Самое близкое, что приходит на ум при загрузке, что вы хотите, чтобы загрузить изображение на сервер. Для этого вам придется использовать веб-службу, которая получает данные изображения. На следующей странице обновите, хотя вам понадобится еще одна услуга, чтобы получить ранее загруженное изображение и показать его пользователю.
Если вы хотите, чтобы ваше приложение хранило пользовательские изображения в его файловой системе (например, приложение для альбома), существует два режима.
1. Сохраняя файлы на своих местах и сохраняя их URL в этом случае в Save the image
, вы храните op.FileName
, а при следующем загрузке попробуйте загрузить изображение с этого адреса. Конечно, вы должны обрабатывать файл, который не доступен.
2- Храните копию изображения для безопасного использования, когда пользователь удаляет исходный файл. Если это так, вы должны сохранить все изображение в части Save the image
и загрузить его в следующий раз из своего безопасного места в пользовательской файловой системе.
Надежда Я получаю вашу проблему, и это поможет вам :)
- Edit -
Все сразу после разъяснения в комментариях я могу подробнее рассказать:
вам нужен функции для создания Base64 с использованием ваших изображений:
public string FileToBase64(string Path)
{
byte[] imageArray = System.IO.File.ReadAllBytes(Path);
return Convert.ToBase64String(imageArray);
}
И еще один, чтобы сохранить строку в БД. Эта часть зависит от структуры БД и технологии, но я уверен, что вы можете понять это:
public void SaveTheImageToDb(string Data) { }
И конвертер, чтобы назначить ваши строки в WPF изображения:
public class Base64ImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string s = value as string;
if (s == null)
return null;
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = new MemoryStream(System.Convert.FromBase64String(s));
bi.EndInit();
return bi;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Тогда в вашем коде :
if (op.ShowDialog() == true)
{
var imageData = FileToBase64(op.FileName);
SaveTheImageToDb(imageData);
image1.Source = new BitmapImage(new Uri(op.FileName));
MessageBox.Show("File uploaded sucessfully");
}
а в следующей загрузке изображения вы можете использовать связывание и конвертер, чтобы показать сохраненное изображение из Дб.
Уверен, что это то же самое, что хранить копию изображения (Мое последнее предположение). Для этого, хотя вам нужно сохранить изображение в формате, который понимает SQL, я рекомендую Base64, так как я его много использую, и это действительно полезно. См. Редактирование для получения более подробной информации. – Emad