2017-01-07 22 views
-1

아파치 코드바 앱에서 PHP 서버로 이미지를 업로드하려고합니다. 서브 tu 업로드 파일과 동일한 서비스를 사용하는 Android 앱이 있으며 완벽하게 작동합니다.PHP 서버가 multipart/form-data를 올바르게 수신하지 못합니다.

아파치 코드바에서 파일을 업로드하려고 할 때 서버가 파일을 올바르게 수신하지 못한다고 생각합니다. 내 안드로이드 응용 프로그램으로

나는

이 내 아파치 코르도바 할 것입니다 다중/폼 데이터로 파일을 보내 :

var opciones = { 
    fileKey: "file", 
    fileName: "image", 
    chunkedMode: false, 
    mimeType: "multipart/form-data", 
    params : {'fileName': "image"} 
}; 


//guardar imagen cargada 
    function guardarImagen(urlImagen, opciones) { 
     debugger; 
     console.log("la ruta de la imagen es:"+urlImagen); 
     return $cordovaFileTransfer.upload(cargarImagenUrl, urlImagen, opciones) 
      .then(function(response) { 
       respuesta = response; 
       debugger; 
       return respuesta; 
     }); 

    } 

내 PHP :

$image = new \Bulletproof\Image($_FILES); 
//$idComplejo= $_POST['idComplejo']; 
    //$idComplejo= $decoded_token->idComplejo; 
    $idComplejo= "21"; 
    $image->setName("1"); 
    $image->setLocation(__DIR__ . "/../imagenes/complejo----------".$idComplejo); 

    //$image->setLocation("imagenes/complejo-".$idComplejo); 
    $image->setSize(1, 1148576); 
    $image->setDimension(10000, 10000); 
    $error = "Not uploaded".$image; 

    if($image['image']){ 
    $upload = $image->upload(); 
    $directorio = "https://www.myhosting.com/imagenes/complejo-".$idComplejo."/1.".$image->getMime(); 

    if($upload){ 
     $result = $db->query("SELECT rutaImagen FROM imagen WHERE idComplejo = :idComplejo AND nroImagen = 1", 
      array("idComplejo" => $idComplejo)); 

     if(count($result) == 0){ 
     $error.="no se encontro imagen para ese complejo, se procede a guardar"; 
     // Nunca se cargo la imagen nro 1 y se procede a guardarla en la BD 
     $result = $db->query("INSERT INTO imagen (idComplejo, nroImagen, esPrincipal, rutaImagen) VALUES (:idComplejo, 1, 0, :directorio)", 
     array("idComplejo" => $idComplejo, "directorio" => $directorio)); 

     $result= mysql_query("") or die(mysql_error()); 
     // Imprimimos 
     $response["success"] = 1; 
     $response["message"] = "La imagen se ha guardado correctamente."; 
     echo ($response); 
     } 
     // verificmos que devuelva datos 
     else if (count($result) > 0) { 

     $result = $db->query("UPDATE imagen SET rutaImagen = :directorio WHERE idComplejo = :idComplejo AND nroImagen = 1", 
     array("idComplejo" => $idComplejo, "directorio" => $directorio)); 
     echo json_encode("La imagen se ha actualizado con éxito."); 
     } 

    } 
    else{ 
     $error .= "La imagen no se guardo debido a:" . $image["error"]; 
    } 

    } 

    file_put_contents('errors.txt', $error, FILE_APPEND); 
    file_put_contents('errors.txt', error_get_last(), FILE_APPEND); 
?> 

라인을 $ error = "업로드하지 못했습니다."$ image; 아무 것도 잡히지 않는다

내가 말했듯이, 나는 서버가 파일을 올바르게 수신하지 못한다고 생각한다.

내가 제대로 내가 콘솔 전에 파일 쇼를 보낼 수 있기 때문에 업로드 할 파일을 받고 있어요 :

"라 루타 드 라 된 imagen ES : 파일 : /// 데이터/사용자/0/com.myapp.example/files/1483828947649.jpg "

내가 잘못하고있는 것은 무엇입니까?

감사합니다.

+0

자신의 질문을 고의로 파괴에 대한 부결. –

답변

0

오류이 무고한 찾고 일치한다 :

$error = "Not uploaded"+$image; 

+ 운영자는 int$image 변환하려고합니다. 그냥

$error = "Not uploaded" . $image; 

는 참조 시도 할 수 : how to convert object into string in php

+0

하하, 여러 언어로 개발할 때 이것이 문제입니다. 좋아, 오류가 사라졌지만 작동하지 않습니다. $ eror는 내가받는 것을보기위한 것이 었습니다. 실수를 주셔서 감사합니다 –

+0

질문은'+'대신'.'을 사용하여 편집되었으며 추가 편집으로 표시하지 않았습니다. 이것은 더 이상 답변으로 적용되지 않습니다. 그냥 말해. 편집 된 댓글 : @FaustinoGagneten 그리고 당신은 실수로 당신이 실수했다는 것을 나타내는 추가 편집으로 "편집"표시하지 않았으며,이 사람은 이것 때문에 downvoted을 의미합니다. @ Turbo. 당신이 downvote를 얻으면, 나는 그것이 나에게서 오지 않을 것이라고 당신에게 보증 할 수있다. –

+0

죄송 합니다만, 나는 그것을 고려하지 않았습니다. 요약 편집을 추가했습니다. –