2017-01-07 12 views
-1

私のapache cordovaアプリからphpサーバに画像をアップロードしようとしています。 私はサーブtuアップロードファイルと同じサービスを使用するAndroidアプリを持っており、完璧に動作します。PHPサーバがmultipart/form-dataを正しく受信していません

私は自分のapache-cordovaからファイルをアップロードしようとしていますが、サーバーがファイルを正しく受信していないと思います。私のAndroidアプリで

私はマルチパート/フォームデータを含むファイルを送信

これは私のapache-コルドバは何をすべきかです:

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;何もキャッチしない

私が言ったように、私はサーバーが正しくファイルを受信して​​いないと思います。

コンソールの前にファイルのショーを送信するので、私は正確に私がアップロードしたいファイルを取得しています:

「ラ・ルタ・デ・ラ・イマヘン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

ハハ、これは複数の言語で開発しているときの問題です。 OK、エラーはなくなりましたが動作しません。 $ erorは私が受け取っているものを見るためのものでした。間違いをありがとう –

+0

質問は '+'の代わりに '.'を使って編集され、追加の編集としてマークされませんでした。これはもはや答えとして適用されません。ただ言って。編集されたコメント:@FaustinoGagnetenとあなたは間違いを犯したと述べる編集を "追加"としてマークしていませんでしたが、この人はこれによりdownvotedになります。 @ターボ。あなたがdownvoteを取得した場合、私はそれが私から来ていないことを保証することができます。 –

+0

申し訳ありませんが、私はそれを考慮しませんでした。私はちょうど編集要約を追加しました –