当前位置:   iOS > 正文

我们可以从手机(Android/iOS)中选择一个图像并使用公共代码(Xamarin Forms)将其上传到服务器吗?

c#,ios,xamarin,xamarin.forms,xamarin-forms,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

要实现这个目标,我应该选择特定于平台的代码,还是可以从共享的Xamarin.Forms项目中的常用代码中实现.

基本上我需要打开Gallery并选择一个图像,然后将其上传到多部分字节数组中的服务器.

找不到使用Xamarin Forms的任何示例.



1> hvaughan3..:

我假设您正在使用PCL解决方案.

有很多方法可以做到这一点.这是我用来允许用户从图库中选择图像然后对该图像执行某些操作的插件.

虽然你也可以使用XLabs版本,可以在这里找到.

使用我建议的插件,在将其安装到PCL项目,Android项目和iOS项目之后,您可以编写这样的代码来显示图像选择器,然后对该图像执行某些操作:

public List Uris;

private ObservableCollection _images;
public  ObservableCollection Images {
    get { return _images ?? (_images = new ObservableCollection< MediaFile >()); }
    set {
        if(_images != value) {
            _images = value;
            OnPropertyChanged();
        }
    }
}

/// 
/// Allows the user to pick a photo on their device using the native photo handlers and returns a stream, which we save to disk.
/// 
/// string, the name of the image if everything went ok, 'false' if an exception was generated, and 'notfalse' if they simply canceled.
public async Task PickPictureAsync() {

    MediaFile file      = null;
    string    filePath  = string.Empty;
    string    imageName = string.Empty;

    try {
        file = await CrossMedia.Current.PickPhotoAsync();

        #region Null Check

         if(file == null) { return null; }                                                                                 //Not returning false here so we do not show an error if they simply hit cancel from the device's image picker

        #endregion

        imageName = "SomeImageName.jpg";
        filePath  = /* Add your own logic here for where to save the file */ //_fileHelper.CopyFile(file.Path, imageName);
    } catch(Exception ex) {
         Debug.WriteLine("\nIn PictureViewModel.PickPictureAsync() - Exception:\n{0}\n", ex);                           //TODO: Do something more useful
         return null;
    } finally { if(file != null) { file.Dispose(); } }

    Receipts.Add(ImageSource.FromFile(filePath));

    Uris.Add(filePath);

    return imageName;
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/iOS/detail/8753
推荐阅读
相关标签
  

闽ICP备14008679号