上传文件,即使Alamofire并搭配修身PHP

问题描述:

我试图找回它的服务器端解决关于与AlamofireLink)文件上传(雨燕3.0)和检索它们使用Slim PHPLink)微架构的服务器端的问题。上传文件,即使Alamofire并搭配修身PHP

我试图上传使用

Alamofire.upload(multipartFormData:{ 
multipartFormData in 
    multipartFormData.append("value".data(/* ... */)!, withName :"key") 

    var idx = 1; 
    for imageRepresentation in imageData { 
     let pictureName = "pictures[]" 
     multipartFormData.append(imageRepresentation, withName: pictureName, mimeType: "image/jpeg") 
     idx += 1 
    } 

}, 
to: uploadUrl, 
method:.post, 
headers: httpHeaders, 
encodingCompletion: /* ... */ 

在这里,我几乎可以肯定,这个脚本是工作的罚款从iPhone拍摄照片,因为当我打https://httpbin.org/post我回来了编码data base 64像我已经上传,所以我很确定这个问题来自我的服务器端代码。

所以,正如我所说,我使用修身PHPLink)服务器端使用这条路线

$this->post('/upload', function ($request, $response, $args) { 

     $request->getParsedBody(); //null 
     $request->getQueryParams(); // [] 
     $request->getBody(); // {} 
     $request->getUploadedFiles(); // [] 

     return /*Some JSON */ 

    })->setName('upload'); 

我错过了什么?有什么我不明白的吗? 我已经尝试过

而且最奇怪的是,从爪子API浏览器

任何帮助将是非常赞赏执行脚本时就像一个魅力!谢谢。

用于上传从照片库中选择图像

在斯威夫特3和Alamofire 4

下面是如何使用Alamofire

  1. 上传全面实施以下内容添加到您的ViewController类别:

    UIImagePickerControllerDelegateUINavigationControllerDelegate

  2. 创建按钮:

首先创建一个按钮并执行以下的方法在它为选择器视图

@IBAction func btnSelectProfileImageClicked(_ sender: Any) { 

    let ImagePicker = UIImagePickerController() 
    ImagePicker.delegate = self 
    ImagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary 

    self.present(ImagePicker, animated: true, completion: nil) 


} 
  1. 然后实现以下UIPicker方法:

    func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info:[String : Any]) 
    {Imgprofile.image = info[UIImagePickerControllerOriginalImage] as? UIImage 
    self.dismiss(animated: true, completion: nil)} 
    
  2. 使另一个按钮通过d ATA到URL使用Alamofire并给出一个@IBAction出口给它吧:

  3. 输入下面的数据吧

    @IBAction func btnUpdateProfileSelected(_ sender: Any) { 
    
        Alamofire.upload(multipartFormData: { (multipartFormData) in 
         multipartFormData.append(UIImageJPEGRepresentation(self.Imgprofile.image!, 1)!, withName: "Prescription", fileName: "Profile_Image.jpeg", mimeType: "image/jpeg") 
        }, to:" Your URL Here where You want to Upload") 
        { (result) in 
         switch result { 
         case .success(let upload, _, _): 
          print(result) 
    
          upload.uploadProgress(closure: { (progress) in 
           print(progress) 
          }) 
    
          upload.responseJSON { response in 
           //print response.result 
           print(response); 
          } 
    
         case .failure(let encodingError): 
          print(encodingError); 
         } 
        } 
    } 
    

    这就是所有

    希望这有助于

    对于全部示例代码或任何怀疑请评论。我会为您提供 的示例代码。其中包括抓取以及使用Alamofire上传数据的 。

    感谢

开始=>
+0

我已经知道了。 该问题位于Alamofire有关文件上传的“Content-type”上。 –