sql >> データベース >  >> RDS >> Mysql

JSONとサーバーへの画像のアップロード

    私のアプローチでは、org.apache.http.entity.mime.MultipartEntityを使用し、渡された画像ファイル名をFileBodyとして追加しました

    entity.addPart("image_" + photo_count, new FileBody(
                            new File(failed.getFilenames()[i])));
    

    次に、MultiPartEntityをHttpPostに渡します。あなたの質問に関係のないコメントやコードがたくさんあるので、私は完全なコードを投稿していません。画像をFileBodyとして渡すことで、stand phpファイル処理コードを使用して画像を取得できます(以下を参照)。

      if ((!empty($_FILES[$im])) && ($_FILES[$im]['error'] == 0)) {
                  $newname = dirname(__FILE__) . '/../photo/' . $campaign . '/' . $fn;
                  if (!file_exists($newname)) {
                      if (move_uploaded_file($_FILES[$im]['tmp_name'], $newname)) {
                          //$resp = "The file " . $fn . " has been uploaded";
                          //printf("%s", $resp);
                      } else {
                        $error = $error + 1;      
                      } 
                  }else{
                    //image file already exists
                    $error = $error + 1;
                  }
              } else {
                  $error = $error +1;
              }
    

    私の目的では、複数の画像を扱っていたため、上記のコードはループしていました

    $im = 'image_' . $i;
    

    エンティティ内の画像の名前を指します。

    短い投稿でごめんなさい、私は時間のために急いでいます。

    Base64文字列アプローチを使用しなかった理由は、送信できる画像のサイズが制限されるためです。エンティティ内のFileBodyアプローチは、私が見つけた最良のアプローチでした。

    次を使用して文字列を渡すことができます:

    entity.addPart("address", new StringBody(failed[0].getAddress()));
    
    HttpClient client = new DefaultHttpClient();
    HttpConnectionParams.setConnectionTimeout(client.getParams(), 20000); // Timeout
    
    MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
    entity.addPart("address", new StringBody("my address example"));
    entity.addPart("image_0", new FileBody(new File("filename of image")));
    
    HttpPost post = new HttpPost("server address");
    post.setEntity(entity);
    
    HttpResponse response  = client.execute(post);
    


    1. PostgreSQLでデータを分割するためのガイド

    2. laravelqueryphp範囲内の最大値を取得する方法

    3. メールアドレスフィールドから一意のドメインをカウントするMySQLクエリ

    4. 1つのテーブルのすべての行に他のテーブルの対応者が含まれていない場合でも、MySQLの2つのテーブルから選択するにはどうすればよいですか?