gpt4 book ai didi

android - 如何在 django 中从 android 接收图像文件?

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:50 26 4
gpt4 key购买 nike

我无法在 Django 中接收和保存从 Android 发送的文件。

正在使用改造和以下代码发送文件:

@Multipart
@PUT("/users/{id}")
void modifyPic(
@Header("auth_token") String token,
@Path("id") int userid,
@Part("request[data][param][title]") String title,
@Part("request[data][param][Photo]") TypedFile avatar,
Callback<User> cb
);

但是我不知道如何在 django 中接收和保存文件。

有人可以帮我指点一下如何实现吗?

最佳答案

Retrofit 在处理文件方面几乎没有问题,所以我真的建议您将您的库从 beta1 升级到 beta2,这样效果会更好。

在 beta2 中你让你的 api 看起来像这样 -

public interface ApiInterface {
@Multipart
@POST ("/api/Accounts/editaccount")
Call<User> editUser (@Header("Authorization") String authorization, @Part("file\"; filename=\"pp.png\" ") RequestBody file , @Part("FirstName") RequestBody fname);
}

'RequestBody file'部分的'file'是您服务器端需要访问的文件实体名称。

这就是您调用此请求的方式 -

File file = new File(imageUri.getPath());
RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), file);
RequestBody name = RequestBody.create(MediaType.parse("text/plain"), firstNameField.getText().toString());
Call<User> call = client.editUser(getToken(), fbody, name, id);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(retrofit.Response<User> response, Retrofit retrofit) {
}

@Override
public void onFailure(Throwable t) {
}
});

这是 ayon115 在此链接上的改造库讨论中编写的代码副本 - https://github.com/square/retrofit/issues/1063

我使用了相同的概念,它对我来说很顺利。

我真的建议您转到该链接并阅读有关库的讨论以及 beta1 和 beta2 之间的区别。

如果您在测试服务器/客户端时遇到问题。

你可以去 www.requestb.in 并部署一个测试服务器,这样你就可以测试来自客户端的 http 请求,这样你就不需要每次都运行你的服务器:)

要测试您的客户端,您可以使用 POSTMAN 工具向您的服务器发出请求。

希望这对您有所帮助。

关于android - 如何在 django 中从 android 接收图像文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32949502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com