doulaopu2343 2016-03-16 08:34 采纳率: 100%
浏览 61
已采纳

通过PHP [CodenameOne]在服务器上上传文件

I want to upload image file on server, because not found any way to upload file directly on server from CodenameOne. I convert image in Base64 format and send to php file then in php again decode image and tried to upload. But same also not working. Can you please tell me how do i solve this problem ?

My PHP Code :

<?php

define('UPLOAD_DIR', 'public_html/appFiles/GKQuiz/userProfilePicture/');
//$Imagecode=$_POST['Image'];


//Base64 String already added in $Imagecode
$Imagecode="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";

$img=base64_decode($Imagecode);
//echo $img;
$uid=uniqid();

$ftp_server = "example.com";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to ftp_server");
$login = ftp_login($ftp_conn, "example.com", "123");

if (ftp_put($ftp_conn, UPLOAD_DIR . $uid . ".jpg", $img, FTP_BINARY))
{
  echo "Successfully uploaded";
}
else{
  echo "Error uploading";
}

// close connection
ftp_close($ftp_conn);

?>
  • 写回答

3条回答 默认 最新

  • dongyou6909 2016-03-16 09:49
    关注

    Finally the found answer for same as below.

    Corrected PHP Code :

    <?php
    
    define('UPLOAD_DIR',$_SERVER['DOCUMENT_ROOT'].'/appFiles/GKQuiz/userProfilePicture/');
    
    // after $_SERVER['DOCUMENT_ROOT']. your root inside public_html folder if any or '/'.
    
    $Imagecode=$_POST['Image']; // parameter
    
    $img=base64_decode($Imagecode);
    $uid=uniqid();
    
    $file = UPLOAD_DIR . $uid . '.jpg';
    $success = file_put_contents($file, $img);
    
    if ($success)
    {
      echo $uid.'.jpg';
    }
    else
    {
      echo "error";
    }
    
    ?>
    

    In CodenameOne your code may be as below :

    if (profilepic!=null) {
    ImageIO imgIO = ImageIO.getImageIO();
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    imgIO.save(profilepic, out, ImageIO.FORMAT_JPEG, 1);
    byte[] ba = out.toByteArray();
    String Imagecode = Base64.encode(ba);
    //System.out.println("data :"+Imagecode);
    request = new ConnectionRequest(){
         @Override
         protected void handleErrorResponseCode(int code, String message) {
               System.out.println("Code :"+code+" Msg :"+message);
         }
    
    };
    request.setPost(true);
    request.setHttpMethod("POST");
    request.addArgument("Image", Imagecode);
    request.setUrl("http://example.com/filename.php");
    NetworkManager.getInstance().addToQueueAndWait(request);
    }else{
         System.out.println("Unable to upload");
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?