0

現在、ファイル/画像を A​​VD から Apache サーバーにアップロードしようとしています。コードを実行してもエラーは発生しませんが、画像がサーバーにアップロードされません。http://10.0.2.2/images他のユーザーが書き込みおよび編集できるように、Apache サーバー上のフォルダーのアクセス許可を変更しました 。これで困っています、助けてください。フォローは私のコードです

このコードは画像を取得し、ビットマップにデコードします。

   bmp = BitmapFactory.decodeFile(filePath);

以下は、ファイルをサーバーにアップロードするために実行するコードです

ByteArrayOutputStream bos = new ByteArrayOutputStream();
Bitmap tmpbmp = bmp;
tmpbmp.compress(CompressFormat.JPEG, 75, bos);
byte[] data = bos.toByteArray();
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(url);
ByteArrayBody bab = new ByteArrayBody(data, "test.jpg");
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("uploaded", bab);
reqEntity.addPart("photoCaption", new StringBody("aaaa"));
postRequest.setEntity(reqEntity);
HttpResponse httpResponse = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new  InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();

            while ((sResponse = reader.readLine()) != null) {
                s = s.append(sResponse);
            }

            Log.i("wi", "Response: " + s);

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            Log.i("wi", "Encoding failed: " + e);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            Log.i("wi", "client protocol exception!: " + e);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log.i("wi", "IO Exception!: " + e);
        }

そして、私は Log.i("wi", "Response: " + s); から応答を得ています。=

    Response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html> <head>  
<title>Index of /images</title> </head> <body><h1>Index of /images</h1><ul><li><a 
href="/"> Parent Directory</a></li></ul></body></html>

ファイルをアップロードしていません。

4

2 に答える 2

2

Apache の commons-net-ftp ライブラリを使用して曲ファイルをサーバーにアップロードしています...コードを提供しています....これを使ってみてください..

 import java.io.File;

    import java.io.FileInputStream;

    import java.io.IOException;

    import org.apache.commons.net.ftp.FTP;

    import org.apache.commons.net.ftp.FTPClient;

    import android.util.Log;



    public class MyOwn {

        public void goforIt(){


            FTPClient con = null;

            try
            {
                con = new FTPClient();
                con.connect("www.mysamle.net");                 // Its dummy Address

                if (con.login("uju495", "Stevejobs!!"))
                {
                    con.enterLocalPassiveMode();                   // Very Important

                    con.setFileType(FTP.BINARY_FILE_TYPE);        //  Very Important
                    String data = "/sdcard/Vivekm4a.m4a";

                    FileInputStream in = new FileInputStream(new File(data));
                    boolean result = con.storeFile("/Ads/Vivekm4a.m4a", in);
                    in.close();
                    if (result) Log.v("upload result", "succeeded");
                    con.logout();
                    con.disconnect();
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }   
        }

    }
于 2012-07-04T07:31:57.090 に答える
0

サーバーがディレクトリ一覧を返しているようです。ファイルを受信するには、サーバー側のスクリプトをコーディングする必要があります。あなたはこれをしましたか?

ここに例があります:

http://getablogger.blogspot.fi/2008/01/android-how-to-post-file-to-php-server.html

于 2012-07-04T07:19:53.707 に答える