1

我是 java 新手,我必须将文件从 Android 应用程序传输到服务器。我从链接中获得了帮助

使用 POST 将文件上传到 HTTP 服务器。安卓 SDK

<?php
$target_path  = "./";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
 echo "The file ".  basename( $_FILES['uploadedfile']['name']).
 " has been uploaded";
} else{
 echo "There was an error uploading the file, please try again!";
}
?>

它的 PHP 代码工作得很好,但我必须用 Java 而不是 PHP 实现服务器端代码。

我用谷歌搜索并从链接中找到代码在此处输入链接描述

InputStream in = request.getInputStream();
        BufferedReader r = new BufferedReader(new InputStreamReader(in));
        StringBuffer buf = new StringBuffer();
        String line;
        while ((line = r.readLine())!=null) {
        buf.append(line);
        }
        String s = buf.toString();

我是java新手,所以不知道如何编写这段代码。我安装了 NetBeans netbeans-7.1.1-ml-javaee

有人可以告诉我这段代码是否正确以及如何将其放入文件或哪种类型的文件中。我已经创建了项目,但不知道如何将此代码放入文件中。

编辑:

Andriod 代码工作正常......我想开发服务器代码来获取和保存文件

4

3 回答 3

5

我希望这段代码可以帮助你

try {
         HttpClient client = new DefaultHttpClient();
     HttpPost post = new HttpPost(Image_url);
     MultipartEntity mpEntity = new MultipartEntity();
     File file = new File(selectedImagePath);
     ContentBody cbFile = new FileBody(file, "image/jpeg");         
     mpEntity.addPart("photo", cbFile);
     mpEntity.addPart("user_id", new StringBody(SmallyTaxiTabbar.unique_ID));
     mpEntity.addPart("password", new StringBody(SmallyTaxiTabbar.password));
     post.setEntity(mpEntity);
     HttpResponse response1 = client.execute(post);
     HttpEntity resEntity = response1.getEntity();
     String Response=EntityUtils.toString(resEntity);
     Log.d("PICTUREServer Response", Response);
     JSONArray jsonarray = new JSONArray("["+Response+"]");
     JSONObject jsonobject = jsonarray.getJSONObject(0);
     alert=(jsonobject.getString("alert"));
     client.getConnectionManager().shutdown();
    } 
     catch (Exception e) {
                Log.e("TAGPost", e.toString());     
    }

其中 SmallyTaxiTabbar.unique_ID,密码为参数值

*我希望这段代码可以帮助你!*

于 2012-04-13T06:18:14.950 回答
1

检查这个库是否对你有帮助。我已经为几种 http 方法创建了包装器..

https://github.com/nareshsvs/android-libraries

于 2012-04-13T09:57:00.623 回答
0

Apache Commons FileUpload库应该可以帮助您POST从服务器的角度处理 Java 中的请求内容。如果需要,它可以与 Servlet 集成。

特别是,它将multipart/form-data为您处理内容(如果您InputStream直接逐行阅读请求,则必须手动执行此操作)。

于 2012-04-16T11:32:05.023 回答