GVKun编程网logo

将图像上传到服务器-Swift 3(swift图片上传)

4

对于将图像上传到服务器-Swift3感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解swift图片上传,并且为您提供关于AcerSwift3笔记本怎么样AcerSwift3笔记本上手图赏、A

对于将图像上传到服务器-Swift 3感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解swift图片上传,并且为您提供关于Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏、Android 10 及更高版本的 Scoped Storage 应用程序崩溃,将图像上传到服务器、Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望、Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数的宝贵知识。

本文目录一览:

将图像上传到服务器-Swift 3(swift图片上传)

将图像上传到服务器-Swift 3(swift图片上传)

我想随请求一起发送图像作为参数。我使用下面的代码调用POST请求,但是我不知道如何将图像追加到正文中。

我通过图像选择器获取图像,如下所示:

if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {

我的要求如下

var request = URLRequest(url: URL(string: "")!) // link removed
        request.httpMethod = "POST"
        let postString = "user_id=\(userId)&image=\(image)"
        request.httpBody = postString.data(using:.utf8)

        let task = URLSession.shared.dataTask(with: request) { data,response,error in
            guard let data = data,error == nil else {               // check for fundamental networking error
                return
            }
            do {
                let json = try JSONSerialization.jsonObject(with: data,options: .mutableContainers) as? AnyObject

                if let parseJSON = json {
                    print("resp :\(parseJSON)")
                }
            } catch let error as NSError {
                print("error : \(error)")
            }
        }
        task.resume()

我是Swift的新手。我已经通过multipart / form-data看到了这一点,但无法自己实现。我不想将其编码为基本64格式。请帮助我。

Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏

Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏

Acer Swift 3是宏碁推出的笔记本电脑,具有轻薄时尚等元素,这里为大家带来 Acer Swift 3笔记本上手图赏 ,一起来看看。

14英寸1920*1080的显示屏幕、2.5GHz的英特尔酷睿酷睿i3、i5-7200u/i7处理器、图形128mb英特尔高清显卡620、8GB/256GB的SSD、Windows Hello、指纹识别器,处理速度快可媲美MacBook,售价仅为1398美元(约£1090/1760美元),性价比方面还是不错的。

以上就是 Acer Swift 3笔记本上手图赏 相关内容,希望对你有帮助。

Android 10 及更高版本的 Scoped Storage 应用程序崩溃,将图像上传到服务器

Android 10 及更高版本的 Scoped Storage 应用程序崩溃,将图像上传到服务器

如何解决Android 10 及更高版本的 Scoped Storage 应用程序崩溃,将图像上传到服务器?

我正在尝试使用改造将图片从图库或相机上传到服务器。
我的应用程序在 android 10 之前运行良好,我选择了使用范围存储,

val_ds = tf.keras.preprocessing.image_dataset_from_directory(
  data_dir,validation_split=0.2,subset="validation",seed=121,image_size=(img_height,img_width),batch_size=batch_size)

但是在 android 11 中它被删除了所以我应该做些什么来修复范围存储的错误

android:requestLegacyExternalStorage="true"

显示对话框以选择厨房或相机

 2021-02-13 15:46:39.335 13981-13981/com.nixbin.MeetNepali W/System.err: java.lang.IllegalStateException: Failed to build unique file: /storage/emulated/0/Pictures Title image/jpeg
2021-02-13 15:46:39.337 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.os.Parcel.createException(Parcel.java:2079)
2021-02-13 15:46:39.337 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.os.Parcel.readException(Parcel.java:2039)
2021-02-13 15:46:39.337 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
2021-02-13 15:46:39.337 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
2021-02-13 15:46:39.337 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.content.ContentProviderProxy.insert(ContentProviderNative.java:495)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.content.ContentResolver.insert(ContentResolver.java:1854)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.provider.MediaStore.createPending(MediaStore.java:627)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.provider.MediaStore$Images$Media.insertimage(MediaStore.java:1802)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at com.nixbin.MeetNepali.application.MyApplication.getimageUri(MyApplication.java:280)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at com.nixbin.MeetNepali.fragments.discussionFragment.onActivityResult(discussionFragment.java:295)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:170)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.Activity.dispatchActivityResult(Activity.java:8140)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.ActivityThread.deliverResults(ActivityThread.java:4969)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.ActivityThread.handleSendResult(ActivityThread.java:5017)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2123)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:107)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.os.Looper.loop(Looper.java:214)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7710)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
2021-02-13 15:46:39.338 13981-13981/com.nixbin.MeetNepali W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

设置图片路径功能

public void uploadImageTypePost() {
   //set image path
    setimagepath();
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            getActivity());

    // set title
    alertDialogBuilder.setTitle("Choose option");

    // set dialog message
    alertDialogBuilder
            .setMessage("Please select image from ")
            .setCancelable(false)
            .setPositiveButton("Camera",(dialog,id) -> {
                        dialog.cancel();
                        if (hasCameraPermission()) {
                            takePicture();
                        } else {
                            requestCameraPermission();
                        }
                    })
            .setNegativeButton("gallery",id) -> {
                        if (hasgalleryPermission()) {
                            opengallery();
                        } else {
                            requestgalleryPermission();
                        }

                    });

    // create alert dialog
    AlertDialog alertDialog = alertDialogBuilder.create();

    alertDialog.setCancelable(true);
    // show it
    alertDialog.show();
}

打开图库

private void setimagepath() {

    String fileName = "IMG_" + new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + ".jpg";
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        File sdIconStorageDir = new File(Environment.getExternalStorageDirectory() + "/" + "Pictures/");
        // create storage directories,if they don''t exist
        sdIconStorageDir.mkdirs();

        mFileTemp = new File(Environment.getExternalStorageDirectory() + "/" + "Pictures/",fileName);
    } else {
        mFileTemp = new File(getActivity().getFilesDir(),fileName);
    }
}

拍照

    private void opengallery() {
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent,REQUEST_CODE_galLERY);
}

关于活动结果

private void takePicture() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    try {
        Uri mImageCaptureUri = null;
        String state = Environment.getExternalStorageState();
        mImageCaptureUri = FileProvider.getUriForFile(getContext(),BuildConfig.APPLICATION_ID + ".provider",mFileTemp);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,mImageCaptureUri);
        intent.putExtra("return-data",true);
        startActivityForResult(intent,REQUEST_CODE_TAKE_PICTURE);
    } catch (ActivityNotFoundException e) {
        Log.d("","cannot take picture",e);
    }
}

获取路径

@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    if (requestCode == REQUEST_CODE_galLERY && resultCode == RESULT_OK) {
        try {

            final Uri imageUri = data.getData();
            final InputStream imagestream = getActivity().getContentResolver().openInputStream(imageUri);
            final Bitmap selectedImage = BitmapFactory.decodeStream(imagestream);
            Bitmap resized = Bitmap.createScaledBitmap(selectedImage,500,true);
            filepath = getPath(getActivity(),getimageUri(getActivity(),resized));
            Utils.loadImageRound(getActivity(),profileImage,filepath);
            Log.d(TAG,"onActivityResult: " + filepath);


            //Absolute Path

        } catch (FileNotFoundException e) {
            e.printstacktrace();
            Toast.makeText(getActivity(),"PickUp image failure",Toast.LENGTH_SHORT).show();
        }

    } else if (requestCode == REQUEST_CODE_TAKE_PICTURE && resultCode == RESULT_OK) {
        try {
            filepath = mFileTemp.getAbsolutePath();
       
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(),Uri.fromFile(new File(mFileTemp.getAbsolutePath())));
            Bitmap resized = Bitmap.createScaledBitmap(bitmap,true);
            System.out.println("image width" + resized.getWidth() + " image height" + resized.getHeight());
            filepath = getPath(getActivity(),resized));

            filepath = getPath(getActivity(),filepath);

            Log.d(TAG,"onActivityResult: " + filepath);
        } catch (Exception e) {
            System.out.println("exception...." + e.toString());
        }
  } else {
//            Toast.makeText(mActivity,"Permission Denied Goto Settings and allow storage and camera permission",Toast.LENGTH_SHORT).show();
        }
    }

提前感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望

Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望

总结

以上是小编为你收集整理的Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数

Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数

总结

以上是小编为你收集整理的Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

我们今天的关于将图像上传到服务器-Swift 3swift图片上传的分享就到这里,谢谢您的阅读,如果想了解更多关于Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏、Android 10 及更高版本的 Scoped Storage 应用程序崩溃,将图像上传到服务器、Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望、Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数的相关信息,可以在本站进行搜索。

本文标签: