gpt4 book ai didi

android - 使用回形针插件通过 Post 方法为 rails 服务器上传图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:37 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,它有一个名为 matches 的 Controller ,其创建方法是:

def create
@match = Match.new(params[:match])
respond_to do |format|
if @match.save
#do stuff here
end
end

这是我的模型

class Match < ActiveRecord::Base
attr_protected
has_attached_file :pic, :styles => { :medium => "500x500>"}
end

我希望能够使用此 rails 服务器,以便我的 android 手机能够将图像上传到此服务器。我为此尝试了几个代码示例,但无法使其正常工作。

关于如何编写一个方法来调用 post 方法来上传图片,我有什么想法吗?

如果有任何资源可以帮助我解决这个问题,你能指导我吗?

*编辑***

这是我之前试过的代码

public void callPost()
{
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://192.168.1.7:3000/matches");
MultipartEntityBuilder build = MultipartEntityBuilder.create();
File file = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath()+"/test.jpg");

build.addPart("pic", new FileBody(file));

HttpEntity ent = build.build();
post.setEntity(ent);
HttpResponse resp = null;
try
{
resp = client.execute(post);
HttpEntity resEnt = resp.getEntity();
String result = EntityUtils.toString(resEnt);
tv.setText(result);
}
catch(Exception e)
{
tv.setText("error");
e.printStackTrace();
}

}

这是我尝试测试的代码,如果我可以让 POST 方法工作。

此代码将图像作为二进制数据流发送(我认为),因此我的服务器日志中出现此错误:

Parameters: {"match"=>{"pic"=>"\xFF\xD8\xFF\xE1a\xDFExif\u0000\u0000MM\u0000*\u0000\u0000\u0000\b\u0000\b\u0001\u000F\u0000\u0002\u0000\u0000\u0000\u0004LGE\u0000\u0001\u0010\u0000\u0002\u0000\u0000\u0000\b\u0000\u0000\u0000n\u0001\u001A\u0000\u0005\u0000\u0000\u0000\u0001\u0000\u0000\u0000v\u0001\e\u0000\u0005\u0000\u0000\u0000\u0001\u0000\u0000\u0000~\u0


//Tonnes more of this


\xE3?\x86+9l\r\xB4\x81o\"\xB6բ{\xD5+\u0003\xB1\u0001\x87+\x91\xF8t\xCF\xF5\xAB^ \xD0භ\x91\xE0\x84\xCD\f\xAD\x8D\xFB\xF8C\xD7\u0018\xFC\xEB6IR\xF2\xD7̒S\u001Eᔄ(\vK\xA5\x82\xE17yN\xA3\xEE\xF5\xE7\u07B4\xBC5%\x96\xAFnЉ\t\u000Ex|g\a\xE9\xFD>\xB5.\xB9\xA0\xE8\xDA%\xB0\xBF\x96\u0004\x9E\xE4.\u0016\xE0\f\x98c\xC8\xC9\xFA\u001Er}\xA9\x8A\xD7G\xFF\xD9"}}
Completed 500 Internal Server Error in 1ms

最佳答案

我会为你解释这个问题:


JSON

Android 可能会通过 JSON/Ajax 将图像发送到 Rails。虽然我在您的代码中看不到这一点,但这是它的典型工作方式 ( REST API )

您显示的参数错误基本上表明您的 JS 正在以看似 Base64 的方式对图像进行编码,这意味着它以代码格式发送图像(是的......)

虽然我认为这是许多 API 驱动的服务处理图像的方式,但必须有更好的方式来处理它


通过 Ajax 上传图片

这可能是不正确的,但希望能提供一些选择

上传图片就是通过请求发送图片对象。虽然您使用的是 REST API 接口(interface),但有很多信息可以解释如何通过 JQuery/Ajax 发送图像对象:

我们之前开发了一个应用程序,它通过标准的 HTML 表单(启用了 :multipart => :true)通过 Ajax 将图像发送到服务器。您可以在http://video-conference-demo.herokuapp.com查看(注册并上传个人资料图片)


你的错误

我会尝试使用标准的 html 表单,file-field & JQuery file upload将文件上传到您的服务器

关于android - 使用回形针插件通过 Post 方法为 rails 服务器上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20797254/

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