C# 呃,将图像路径保存到数据库中,除非用户只有一个配置文件图像,否则您始终可以加载相同的路径和文件名。如果您仍然有问题,请告诉我。可能重复的可能重复的可能重复的我想保存/上载用户选择的图像而不是profile.png实际上我的老板总是告诉我,当我通过媒体选取器

C# 呃,将图像路径保存到数据库中,除非用户只有一个配置文件图像,否则您始终可以加载相同的路径和文件名。如果您仍然有问题,请告诉我。可能重复的可能重复的可能重复的我想保存/上载用户选择的图像而不是profile.png实际上我的老板总是告诉我,当我通过媒体选取器,c#,xamarin,xamarin.ios,xamarin.android,xamarin.forms,C#,Xamarin,Xamarin.ios,Xamarin.android,Xamarin.forms,呃,将图像路径保存到数据库中,除非用户只有一个配置文件图像,否则您始终可以加载相同的路径和文件名。如果您仍然有问题,请告诉我。可能重复的可能重复的可能重复的我想保存/上载用户选择的图像而不是profile.png实际上我的老板总是告诉我,当我通过媒体选取器将图像上载到某个详细页上时,图像将上载到那里,直到我用另一个图像更改它,我如何才能做到这一点,请给我代码和逻辑…或者我们可以通过本地数据库做这件事。@请看我的编辑。如果我只是为你编写应用程序,那么你的老板就需要付钱给我,而不是你!我已经使用了所


呃,将图像路径保存到数据库中,除非用户只有一个配置文件图像,否则您始终可以加载相同的路径和文件名。如果您仍然有问题,请告诉我。

可能重复的可能重复的可能重复的我想保存/上载用户选择的图像而不是profile.png实际上我的老板总是告诉我,当我通过媒体选取器将图像上载到某个详细页上时,图像将上载到那里,直到我用另一个图像更改它,我如何才能做到这一点,请给我代码和逻辑…或者我们可以通过本地数据库做这件事。@请看我的编辑。如果我只是为你编写应用程序,那么你的老板就需要付钱给我,而不是你!我已经使用了所有我只想在本地和永久加载的东西,直到我将其更改为一个新版本,我无法做到这一点,但我已将其临时上载(当我转到另一个页面时,我的图像源更改为profile.png)我这里没有任何示例或代码..谢谢!谢谢,先生,我将在周一的代码中应用此示例或代码,然后返回美国:)我一直在xamarin windows phone中使用此选项,并实现了您的代码,但当我从gallery中选择image时,流进入此处,如果(!File.Exists(sourceFile)){return string.empty;}则将字符串设为空请帮助我保存/上传用户选择的图像而不是profile.png实际上我的老板总是告诉我,当我通过媒体采集器将图像上传到某个详细页面时,图像会被上传到那里,直到我用另一个图像更改它为止,那么我该如何做,请给我带有逻辑的代码……我们都可以通过本地数据库执行此操作。请参阅我的编辑。如果我只是为你编写应用程序,那么你的老板就需要付钱给我,而不是你!我已经使用了所有我只想在本地和永久加载的东西,直到我将其更改为一个新版本,我无法做到这一点,但我已将其临时上载(当我转到另一个页面时,我的图像源更改为profile.png)我这里没有任何示例或代码..谢谢!谢谢,先生,我将在周一的代码中应用此示例或代码,然后返回美国:)我一直在xamarin windows phone中使用此选项,并实现了您的代码,但当我从gallery中选择image时,流进入此处,如果(!File.Exists(sourceFile)){return string.empty;}且未选择任何图像,则将字符串设为空。请帮助我
var profile = new Image { };
profile.Source = "profile.png";
profile.HorizontalOptions = LayoutOptions.StartAndExpand;
profile.VerticalOptions = LayoutOptions.StartAndExpand;

var profiletap = new TapGestureRecognizer();

profiletap.Tapped += async (s, e) =>
{
    var file = await CrossMedia.Current.PickPhotoAsync();
    if (file == null)
        return;
    await DisplayAlert("File Location", file.Path, "OK");

    im = ImageSource.FromStream(() =>
    {
        var stream = file.GetStream();
        //file.Dispose();
        return stream;
    });

    profile.Source = im;

//   await Navigation.PushModalAsync(new PhotoPage(im));
};

profile.GestureRecognizers.Add(profiletap);
public class App : Application {

    public static Image ProfileImage = new Image {
        Source            = "profile.png",
        HorizontalOptions = LayoutOptions.StartAndExpand,
        VerticalOptions   = LayoutOptions.StartAndExpand
    };
    ....
}
public class ProfilePage : ContentPage {

    public ProfilePage() {

        ....

        App.ProfileImage.GestureRecognizers.Add(profiletap);
    }

}
var file = await CrossMedia.Current.PickPhotoAsync();
using ....;

[assembly: Dependency(typeof(FileHelper_Android))]

namespace YourNamespace.Droid{

    /// <summary>
    /// Responsible for working with files on an Android device.
    /// </summary>
    internal class FileHelper_Android : IFileHelper {

        #region Constructor

        public FileHelper_Android() { }

        #endregion

        public string CopyFile(string sourceFile, string destinationFilename, bool overwrite = true) {

            if(!File.Exists(sourceFile)) { return string.Empty; }
            string fullFileLocation = Path.Combine(Environment.GetFolderPath (Environment.SpecialFolder.Personal), destinationFilename);
            File.Copy(sourceFile, fullFileLocation, overwrite);
            return fullFileLocation;
        }
    }
}
public interface IFileHelper {

    string CopyFile(string sourceFile, string destinationFilename, bool overwrite = true);

}
_fileHelper = _fileHelper ?? DependencyService.Get<IFileHelper>();

profiletap.Tapped += async (s, e) =>
{
    var file = await CrossMedia.Current.PickPhotoAsync();
    if (file == null)
        return;
    await DisplayAlert("File Location", file.Path, "OK");

    profile.Source = im;

    imageName = "SomeUniqueFileName" + DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss-tt");
    filePath  = _fileHelper.CopyFile(file.Path, imageName);

    im = ImageSource.FromFile(filePath)

//   await Navigation.PushModalAsync(new PhotoPage(im));
};