如何解决通过 Volley Multi-part Request 将捕获的图像发送到本地烧瓶服务器;但是我从我的烧瓶服务器得到了一个代码 302
我正在制作一个应用程序,可以拍照然后将其发送到服务器进行一些图像处理,但是当我将图像发送到服务器时,我收到“POST/HTTP/1.1”302,它正在重定向我的图像,并且不知道怎么解决
这是我的html表单代码
export PATH="$HOME/.composer/vendor/bin:$PATH"
这是我安卓工作室的代码
<!doctype html>
</p>
{% if filename %}
<div>
<img src="{{ url_for('display_image',filename=filename) }}">
</div>
{% endif %}
<form method="post" action="/" enctype="multipart/form-data">
<dl>
<p>
<input type="file" name="file" autocomplete="off" required>
</p>
</dl>
<p>
<input type="submit" value="Submit">
</p>
</form>
这是烧瓶代码
public class MainActivity extends AppCompatActivity {
ImageView imgMain;
Button bClick,bUpload;
Bitmap photo;
private static final String URL = "http://10.0.2.2:5000/";
private static final int CAMERA_REQUEST =1888;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgMain = findViewById(R.id.imgMain);
bClick = findViewById(R.id.bClick);
bUpload = findViewById(R.id.bUpload);
bClick.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent,CAMERA_REQUEST);
}
});
bUpload.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
StringRequest stringRequest = new StringRequest(Request.Method.POST,URL,new Response.Listener<String>() {
@Override
public void onResponse(String response) {
String s = response.trim();
if(!s.equalsIgnoreCase("file")){
Toast.makeText(MainActivity.this,"uploaded",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this,"Failed to upload",Toast.LENGTH_SHORT).show();
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String,String> getParams(){
String image = getStringImage(photo);
Map<String,String>params = new HashMap<String,String>();
params.put("IMG",image);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
requestQueue.add(stringRequest);
}
});
}
@Override
protected void onActivityResult(int requestCode,int resultCode,@Nullable Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == CAMERA_REQUEST){
photo = (Bitmap)data.getExtras().get("data");
imgMain.setimageBitmap(photo);
}
}
public String getStringImage(Bitmap bm){
ByteArrayOutputStream ba = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG,100,ba);
byte[] imagebyte = ba.toByteArray();
String encode = Base64.encodetoString(imagebyte,Base64.DEFAULT);
return encode;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。