我目前正在做一个个人项目,我想上传一张个人资料图片到我的服务器上。通过以表单数据的形式发送图像,我可以轻松地将图像发送到带有postman的服务器上,但当我对其进行相同的改造时,它不起作用,有时它会创建一个1kb的文件,在打开时显示错误。
Uri uri = data.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
profileImage.setImageBitmap(bitmap);
File file = new File(uri.getPath());
RequestBody reqFile = RequestBody.create(MediaType.parse("image/*"),file);
MultipartBody.Part body = MultipartBody.Part.createFormData("Profile", "bcs.jpeg", reqFile);
authViewModel.setNewProfilePic(layout,email,body);
public void setNewProfilePic(RelativeLayout relativeLayout, String email,MultipartBody.Part part) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
api = new Retrofit.Builder().baseUrl(Constants.URL_API).client(client).build().create(SpendistryAPI.class);
retrofit2.Call<okhttp3.ResponseBody> req = api.setNewProfilePic(email,part);
req.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
// Do Something
if (!response.isSuccessful()) {
Toast.makeText(application, "notWorking: " + response.code(), Toast.LENGTH_SHORT).show();
return;
}
try {
Toast.makeText(application, response.body().string(), Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(application, "catch", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
t.printStackTrace();
}
});
如果我提供文件到请求Body.create喜欢,
File file = new File(uri.getPath());
RequestBody reqFile = RequestBody.create(MediaType.parse("image/*"),file);
设置新配置文件pic的代码不会执行,如果我只传递URI。getPath()输入。create()方法id在服务器上创建无法打开的1kb图像文件。
请帮我解决这个问题,提前谢谢!!
我认为您可能没有授予读取外部存储权限uri。getPath()将不起作用,您必须从uri中找到一个真正的路径,才能使用此代码
private String getRealPathFromURI(Uri contentUri) {
String[] proj = {MediaStore.Images.Media.DATA};
CursorLoader loader = new CursorLoader(this, contentUri, proj, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String result = cursor.getString(column_index);
cursor.close();
return result;
}
现在,把这个字符串传给文件,否则代码就完美了!
FILE file = new file(getRealPathFromURI(uri));
我必须上传从用户首选的应用程序(Cameta,画廊等)选择后的图像文件。我可以在Imageview中显示结果意图为位图。现在我想上传这个图像后,一个按钮将被点击。我用改装来做到这一点。我跟随ImagePicker类将图像收集到我的Imageview中。 正在收集图像代码: 要将图像上载到服务器,我使用改装库 API接口 我的问题是,在将result intent中的Imageview设置为在服务器
我正在通过我的Rails4应用程序中的CarrierWave将图像上传到AWS3的桶中。我也有Cloudfront设置,它目前为我的所有statis资产提供服务(不包括公共上传)。 我如何通过Cloudfront而不是S3服务上传的图像,即使它们存储在S3桶中?我已经找到了这样的教程,但是由于我已经有一个CloudFront发行版在运行,我想知道是否应该为我的公共映像上载添加另一个,或者有没有一种
我想上传图像/文件到服务器使用它的uri使用下面的代码 所以,在这里我的回应是不成功的。API返回我内部服务器错误状态500,但我知道服务器工作良好(我测试了其他应用程序)。另外,文件uri也可以。我是新来的,所以能有人发现我的错误,并详细解释为什么是错误的。
我正试图通过AWS PHP SDK将一个图像上传到我的S3 Bucket。对于我的EC2实例,我附加了一个角色,允许我的S3 Bucket使用PutObject和GetObject。因此,我不需要在创建S3Client时附加凭据。我还在学习。 这是我的PHP脚本: 我在这个表单中不断收到500个内部错误。显然错误发生在S3Client创建时,我不知道为什么。 进一步的探测证实,当我尝试实例化S3C
我有一个问题上传文件到服务器(春季启动)从Android-改版。 这是我在Spring Boot中的代码。 这是在Android中 这是Spring Boot中的错误消息 但是,当我用邮递员的时候,它做得很好。 请告诉我问题是什么,如何解决
当我尝试将对象内容上载到FTP服务器 [它的值从[T:InputFileUpload]组件中获取] 我的web浏览器中的加载指示器播放并且不会停止 调试时,我发现我的come在一行中冻结 但是我尝试了3个方法(如代码所示)来上载 ,但是所有方法仍然不工作 将文件上载到FTPServer控制器方法