2016-12-08 1 views
1

Ich möchte das Bild aus der Fotobibliothek in einem Simulator auf meinem Server hochladen. Aber jedes Mal bekomme ich diese JSON-Antwort:Hochladen von Bild auf Server mit UIImagePickerController zeigt Dateityp, den Sie hochladen möchten, ist nicht erlaubt (Swift/iOS)

Here the jsonObject is Optional({ 
    status = "The filetype you are attempting to upload is not allowed."; 
}) 

Ich teste dies in einem Simulator. Welche Art von Dateityp ist nicht erlaubt? Ich verstehe es nicht.

Dies ist mein Code-Block:

self.headerImageView.image=info[UIImagePickerControllerOriginalImage] as? UIImage 

let image1=info[UIImagePickerControllerOriginalImage] as? UIImage 

let imgdata : NSData = UIImagePNGRepresentation(image1!)! 

let appDelegate1 = UIApplication.sharedApplication().delegate as! AppDelegate 

UserRoomid=appDelegate1.roomlistid as String 


let request:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string:"\(liveurl)rooms/image_upload?user_id=\(webservice8)")!) 

var session = NSURLSession.sharedSession() 

request.HTTPMethod = "POST" 

let boundary = generateBoundaryString() 

let contentType = NSString(format: "multipart/form-data; boundary=%@",boundary) 

request.addValue(contentType as String, forHTTPHeaderField: "Content-Type")    

let body = NSMutableData() 
body.appendData(NSString(format: "\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!) 

body.appendData(NSString(format:"Content-Disposition: form-data; name=\"title\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) 

body.appendData("Hello World".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!) 

body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!) 

body.appendData(NSString(format:"Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"bklblk.jpg\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) 

body.appendData(NSString(format: "Content-Type: application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!) 

body.appendData(imgdata) 


body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!) 


request.HTTPBody = body 

let operation : AFHTTPRequestOperation = AFHTTPRequestOperation(request: request) 

operation.responseSerializer.acceptableContentTypes = NSSet(object: "text/html") as Set<NSObject> 

operation.setCompletionBlockWithSuccess ({ 

    (operation : AFHTTPRequestOperation!, responseObject: AnyObject!) in 

    let response : NSString = operation.responseString! 

    print("success is \(response)") 

    print("Here the responseObject for success is \(responseObject)") 
)} 

Hier ist mein Server-Code:

public function image_upload() 
{ 
    $_FILES['uploadedfile']['type'] = 'image/png'; 
    $id = $this->input->get('user_id'); 

    $file_element_name = 'uploadedfile'; 

    $this->path = realpath(APPPATH . '../images/users/'); 
    $status = ""; 
    $msg = ""; 
    $file_element_name = 'uploadedfile'; 

    if ($status != "error")  
    { 
     if(!is_dir($this->path.'/'.$id)) 
     { 
      mkdir($this->path.'/'.$id, 0777, true); 
     } 

     $config['upload_path'] = dirname($_SERVER['SCRIPT_FILENAME']).'/images/users/'.$id; 

     $config['allowed_types'] = 'gif|jpg|png|jpeg|GIF|JPG|PNG|JPEG'; 
     $config['file_name'] = 'userpic.jpg'; 
     $config['overwrite'] = TRUE; 
     $this->load->library('upload', $config); 

     $this->upload->initialize($config); 

     if(!$this->upload->do_upload($file_element_name)){ 
      $status = 'error'; 
      $msg = $this->upload->display_errors('',''); 
      $data = ""; 
      echo '[{"status":"'.$msg.'"}]'; 
     } 
     else { 
      $data = $this->upload->data(); 
      $image = base_url().'/images/'.$id.'/userpic_thumb.jpg'; 
      $config1['image_library'] = 'gd2'; 
      $config1['source_image'] = dirname($_SERVER['SCRIPT_FILENAME']).'/images/users/'.$id.'/userpic.jpg'; 
      $config1['new_image'] = dirname($_SERVER['SCRIPT_FILENAME']).'/images/users/'.$id.'/userpic_thumb.jpg'; 
      $config1['maintain_ratio'] = TRUE; 
      $config1['width'] = 107; 
      $config1['height'] = 78; 

      $this->load->library('image_lib'); 

      $this->image_lib->initialize($config1); 

      if (! $this->image_lib->resize()) 
      { 
       $resize = $this->image_lib->display_errors(); 
      } 
      //$image = base_url().'/images/'.$id.'/pic_file.jpg'; 
    $image = base_url().'images/users/'.$id.'/userpic_profile.jpg'; 
      $config2['image_library'] = 'gd2'; 
      $config2['source_image'] = dirname($_SERVER['SCRIPT_FILENAME']).'/images/users/'.$id.'/userpic.jpg'; 
      $config2['new_image'] = dirname($_SERVER['SCRIPT_FILENAME']).'/images/users/'.$id.'/userpic_profile.jpg'; 
      $config2['maintain_ratio'] = TRUE; 
      $config2['width'] = 209; 
      $config2['height'] = 209; 

      $this->load->library('image_lib'); 

      $this->image_lib->initialize($config2); 

      if (! $this->image_lib->resize()) 
      { 
       $resize = $this->image_lib->display_errors(); 
      } 
      //$image = base_url().'/images/'.$id.'/pic_home.jpg'; 
    $image = base_url().'images/users/'.$id.'/userpic_home.jpg'; 
      $config3['image_library'] = 'gd2'; 
      $config3['source_image'] = dirname($_SERVER['SCRIPT_FILENAME']).'/images/users/'.$id.'/userpic.jpg'; 
      $config3['new_image'] = dirname($_SERVER['SCRIPT_FILENAME']).'/images/users/'.$id.'/userpic_home.jpg'; 
      $config3['maintain_ratio'] = TRUE; 
      $config3['width'] = 320; 
      $config3['height'] = 320; 

      $this->load->library('image_lib'); 

      $this->image_lib->initialize($config3); 

      if (! $this->image_lib->resize()) 
      { 
       $resize = $this->image_lib->display_errors(); 
      } 
      $data = $this->upload->data(); 

      $resize = base_url().'images/users/'.$id.'/userpic.jpg'; 
      //$resize = base_url().'images/'.$id.'/pic.jpg'; 

      echo '[{"image":"'.$image.'","resize":"'.$resize.'"}]';exit; 

     } 

     @unlink($_FILES[$file_element_name]); 
    } 
} 
+0

können Sie Server-Code zeigen auch? –

+0

Bitte überprüfen .. Ich habe die Frage bearbeitet. –

+0

aa viel Code und ich verstehe nicht $ _FILES ['uploadedfile'] ['type'] = 'image/png'; –

Antwort

0

Versuch als Server-Code zu verwenden

if(isset($_FILES['photo']['tmp_name'])) { 
       $file = $_FILES['photo']['tmp_name']; 
       if (move_uploaded_file($file, ROOT_DIRECTORY.'../../../../images/driver_'.$driver->id.'.jpg')) { 
     //success 
       } 
      } 
+0

eigentlich die Problem war mit dem erlaubten Dateityp im PHP-Server, sie hatten jpg, jpeg, png-Format auf der Serverseite erlaubt, aber das Bild, das von meinem Ende hochgeladen wurde, war jpg, aber das Typformat wurde abgelehnt die Backend-Leute, um es zu korrigieren, änderten sie den erlaubten Typ zu allem und das Problem wurde gelöst; –

Verwandte Themen