Alamofire在swift 3中上传的相机和图库图像 [英] Camera and gallery image upload by alamofire in swift 3

查看:112
本文介绍了Alamofire在swift 3中上传的相机和图库图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我花了20多个小时来弄清楚如何将图像从我的应用程序上传到服务器,我要上传的图像可以从相机或照片胶卷中获取.....这是我的代码确实显示了上传进度,但没有到达服务器,因此从服务器获得否定响应..请帮助我.

Hi there i have spent more than 20 hours to figure out how to upload image from my app to server, image which i want to upload could be either taken from camera or photo roll..... here is my code which does show progress of uploading but doesnt reach to server and thus gets negative response form server.. please help me..

  Alamofire.upload(multipartFormData: { multipartFormData in
            multipartFormData.append(UIImageJPEGRepresentation(image, 0.1)!, withName: imageName)
            for (key, value) in parameters {
                multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
            }
        },
                         to: URL_USER_PROFILE_IMG_UPLOAD)
        { (result) in
            switch result {
            case .success(let upload, _, _):

                upload.uploadProgress(closure: { (progress) in
                    print("Upload Progress: \(progress.fractionCompleted)")
                })

                upload.responseJSON { response in
                    print(response.result.value)
                }

            case .failure(let encodingError):
                print(encodingError)
            }
        }

我的服务器代码是这样的PHP

and my server code is in PHP as this

    <?php

// Path to move uploaded files
$target_path = "profile-photos/";

// array for final json respone
$image_upload = array();
 $server_ip ="00.000.000.000";
//gethostbyname(gethostname());
// final file url that is being uploaded
$file_upload_url = 'http://' . $server_ip .'/'.'folder2017'.'    /'.'webser'.'/'. $target_path;



if(isset($_FILES['image']['name'])) {
$target_path=$target_path.$_FILES['image']['name'];
   if(move_uploaded_file($_FILES['image']['tmp_name'], $target_path))         {
        $image_upload=array('path'=>$file_upload_url,'response_code'=>1);
        echo json_encode($image_upload);
  }
  } else {

  $image_upload=array('response_code'=>0);
  echo json_encode($image_upload);
  }



?>

推荐答案

尝试一下:

替换

multipartFormData.append(UIImageJPEGRepresentation(image, 0.1)!, withName: imageName)

使用

let imgData = UIImageJPEGRepresentation(image!, 1.0)!
multipartFormData.append(imgData, withName: "image", fileName: "image.jpg", mimeType: "image/jpg")

这篇关于Alamofire在swift 3中上传的相机和图库图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆