Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将文件从Android上传到JavaWeb服务?_Java_Android_File Upload - Fatal编程技术网

如何将文件从Android上传到JavaWeb服务?

如何将文件从Android上传到JavaWeb服务?,java,android,file-upload,Java,Android,File Upload,我试图通过RESTAPI将一个文件从android发送到我的Web服务器,但我不知道如何处理java中的MultipartBody.Part对象 API请求: @Multipart @POST("utilizadores/upload") Call<ResponseBody> uploadPhoto( @Part MultipartBody.Part fotografia); File file = new File(getPat

我试图通过RESTAPI将一个文件从android发送到我的Web服务器,但我不知道如何处理java中的MultipartBody.Part对象

API请求:

@Multipart
@POST("utilizadores/upload")
Call<ResponseBody> uploadPhoto(
        @Part MultipartBody.Part fotografia);
        File file = new File(getPath(data));

        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);

        MultipartBody.Part parts = MultipartBody.Part.createFormData("images", file.getName(), requestBody);


        Call<ResponseBody> call = RetrofitClient
                .getInstance()
                .getApi()
                .uploadPhoto(parts);

        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

                Toast.makeText(getContext(), response.message(), Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {

            }
        });

我认为您必须检查此解决方案此解决方案对我没有帮助,因为我的问题是REST服务器函数的参数。我认为您必须传递静态映像名称,以便系统无法理解您的名称。他们需要acthule文件,因此请正确检查您的代码
@Produces(MediaType.APPLICATION_JSON)

public Response uploadFile(@QueryParam("fotografia") String fotografia) {

    BD bd = new BD();
    int id = 54;

    try {

        String path = "/fotografias/" + id + ".jpg";

          //guardarFicheiro(fotografia, path);
          
        ConnectionBD connection = bd.abrirLigacao();
        PreparedStatement ps = connection.getConn()
                .prepareStatement("UPDATE utilizador SET fotografia=? WHERE id=?");

        ps.setString(1, fotografia);
        ps.setInt(2, id);

        int x = ps.executeUpdate();

        if (x > 0) {
            bd.fecharConexao(connection);
            return Response.ok().build();
        }

        bd.fecharConexao(connection);

    } catch (SQLException ex) {
        System.out.println(ex);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
    return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}