0

AndroidアプリからPHPファイルに画像をPOSTしようとしていますが、ファイルとして認識され、$_FILE[' filename'] 私のphpスクリプトで。

ありがとう :)

編集:

申し訳ありませんが、私は明確ではないかもしれません.PHPスクリプトを探しているのではありません.$_FILE['sample']の受け入れをすでに終えており、必要なことを行っています.ファイルのTYPEがわかりません. PHPが$_FILEとして「見る」ために、PHPファイル(IN JAVA)に投稿する必要があります

参考: loopj 非同期 http 要求ライブラリを使用しています。

public void add_image_android(final Bitmap image, String party_id, String guest_id) 
    { 

        String url = "http://www.mysite.com/urltopost";

            /* not sure what to set fOut to for the bitmap to be passed as file */

        RequestParams params = new RequestParams();
        params.put("file", fOut);
        params.put("guest_id", guest_id);
        params.put("party_id", party_id);
        client.post(url, params, new JsonHttpResponseHandler() 
        {
            @Override
            public void onSuccess(JSONObject response)
            {
                ((ResponseListener)_mainContext).add_image_android_response(response.toString());
                return; 
            }
            @Override
            public void onFailure(Throwable e) 
            {
                fireToast("api error:"+e);
                Log.d("api error:",e.toString());
            }
        });
    }
4

2 に答える 2

0

画像をアップロードしてリンクを提供する以下のコードを試してください。

<?php
$uploaddir = 'images/';
$ran = rand () ;

$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir .$ran.$file;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "http://www.domain.com/folder/{$uploadfile}";
}
?>
于 2013-02-06T14:38:19.633 に答える
0

これは私にとってはうまくいきました:(非常に古いコード、役に立てば幸いです...)

ReturnObject returnObject = new ReturnObject(); 

HttpURLConnection conn = null;
DataOutputStream dos = null;
BufferedReader inStream = null;

String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary =  "*****";

int bytesRead, bytesAvailable, bufferSize;

byte[] buffer;

int maxBufferSize = 1*1024*1024;

String urlString = "your url";

try{
    FileInputStream fileInputStream = new FileInputStream(photoFile);

    URL url = new URL(urlString);
    conn = (HttpURLConnection) url.openConnection();
    conn.setDoInput(true);

    conn.setDoOutput(true);
    conn.setUseCaches(false);

    conn.setRequestMethod("POST");
    conn.setRequestProperty("Connection", "Keep-Alive");
    conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

    dos = new DataOutputStream( conn.getOutputStream() );
    dos.writeBytes(twoHyphens + boundary + lineEnd);
    dos.writeBytes("Content-Disposition: form-data; name=\"image\";"
      + " filename=\"" + photoFile.getAbsolutePath() +"\"" + lineEnd);
    dos.writeBytes(lineEnd);

    bytesAvailable = fileInputStream.available();
    bufferSize = Math.min(bytesAvailable, maxBufferSize);
    buffer = new byte[bufferSize];

    bytesRead = fileInputStream.read(buffer, 0, bufferSize);

    while (bytesRead > 0){
        dos.write(buffer, 0, bufferSize);
        bytesAvailable = fileInputStream.available();
        bufferSize = Math.min(bytesAvailable, maxBufferSize);
        bytesRead = fileInputStream.read(buffer, 0, bufferSize);
    }

    dos.writeBytes(lineEnd);
    dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

    fileInputStream.close();
    dos.flush();
    dos.close();

}catch (MalformedURLException ex){
    ex.printStackTrace();
}catch (IOException ioe){
    ioe.printStackTrace();
}

サーバーで私はこれを見つけました:

$source = $_FILES['image']['tmp_name'];
move_uploaded_file($source, $target)

この「tmp_name」が何であるかわからない...

于 2013-02-06T14:50:09.860 に答える