gpt4 book ai didi

android - 将图像从本地系统(PC - 文件系统)上传到服务器

转载 作者:行者123 更新时间:2023-11-30 03:12:56 25 4
gpt4 key购买 nike

我正在尝试从我的桌面为 imageview 动态定位放置图像


我做了什么?

目前我正在使用我的可绘制对象中的图像将图像发布到服务器

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.image); 

我想做什么?

  • 现在对于单击图像的 ImageView 我应该能够选择来 self 桌面的图像(我正在运行我的模拟器)
  • 我需要从 C:\images\ 中选择所有示例图像所在的图像位于

注意::图像位置,我指的不是 SD 卡....我指的是我 PC 中的文件夹


MainActivity.java

public class MainActivity extends Activity {

Button submit;
ProgressDialog pDialog;
InputStream is;

EditText name;
ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

submit = (Button) findViewById(R.id.SUBMIT_BUTTON_ID);

name = (EditText) findViewById(R.id.editText1);
imageView = (ImageView) findViewById(R.id.imageView1);

submit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new MainTest().execute();


}
});
}



/**
* Method to post the image to the server.
* U will have to change the url which will accept the image data.
* @throws IOException
*/
public void postImageData() {


try
{

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.image);

HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("http://10.0.2.2:7002/Details/");
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
try{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmapOrg.compress(CompressFormat.JPEG, 75, bos);
byte[] data = bos.toByteArray();
ByteArrayBody bab = new ByteArrayBody(data, "image.jpg");
reqEntity.addPart("key", bab);
reqEntity.addPart("key1", new StringBody(name.getText().toString()));
}
catch(Exception e){
//Log.v("Exception in Image", ""+e);
reqEntity.addPart("picture", new StringBody(""));
}
postRequest.setEntity(reqEntity);
HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
s = s.append(sResponse);
}
}catch(Exception e){
e.getStackTrace();
}


}
public class MainTest extends AsyncTask<String, Integer, String> {

@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Loading..");
pDialog.setIndeterminate(true);
pDialog.setCancelable(false);
pDialog.show();
}

@Override
protected String doInBackground(String... params) {

postImageData();

return null;
}

@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub

super.onPostExecute(result);
// data=jobj.toString();
pDialog.dismiss();

}

}

}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="168dp"
android:layout_weight="0.41"
android:orientation="vertical"
tools:context=".MainActivity" >

<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="101dp"
android:layout_marginTop="32dp"
android:clickable="false"
android:src="@drawable/image" />

<EditText
android:id="@+id/editText1"
android:layout_width="195dp"
android:layout_height="wrap_content"
android:paddingTop="50dp"
android:layout_gravity="center"
android:ems="10" />

</LinearLayout>

<Button
android:id="@+id/SUBMIT_BUTTON_ID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="47dp"
android:text="SUBMIT" />

</LinearLayout>

实现这个的任何想法

谢谢

最佳答案

你有两个选择

1>在您的 PC 中构建您自己的服务器,以便它加载所有可用的图像和图像 URI,并为其创建 REST api 通过 JSON 将所有图像从您的 pc 检索到任何地方。这样图像就可以加载到您的手机中,可以共享,上传到任何地方。例如,您可以使用 this上传所选图像的方法。

2>简单方法:

使用aFilechooser项目中的库,以便您可以直接从 3rd party apps 中选择图像/文件(例如:ES 文件资源管理器)允许您从您的电脑中选择文件,并允许将任何文件图像从您的电脑上传到您的服务器。这种方法的唯一问题是您必须查看来自其他第三方应用程序的图像和文件!如果需要,您可以使用 google Drive 同步机制从您的电脑或 Use Google API 同步所有图像文件夹。 .

关于android - 将图像从本地系统(PC - 文件系统)上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20625609/

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