如何通过Post-HTTP(服务器端PHP)获取图像


how to get image via Post-HTTP(server-side PHP)

我正在开发一个android应用程序,我想通过HTTP-Post向PHP服务器发送从android设备捕获的图像,该服务器将图像发送到电子邮件。

这是我的客户端代码(在应用程序中):
public class MainActivity extends Activity {
protected static final int TAKE_PHOTO_CODE = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button capture = (Button) findViewById(R.id.capture_button);
    capture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // We use the stock camera app to take a photo
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());
            startActivityForResult(intent, TAKE_PHOTO_CODE);
        }
    });
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
        Uri imagePath = getImageUri();
       // doSomething();
    }
}
/**
 * Get the uri of the captured file
 * @return A Uri which path is the path of an image file, stored on the dcim folder
 */
private Uri getImageUri() {
    // Store image in dcim
    File file = new File(Environment.getExternalStorageDirectory() + "/DCIM", "Photo");
    Uri imgUri = Uri.fromFile(file);
         PostData();
    return imgUri;
}
public void PostData(){
    String url = "http://doda.hostei.com";
    File file2 = new File(Environment.getExternalStorageDirectory()+"/DCIM",
            "Photo");
    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        InputStreamEntity reqEntity = new InputStreamEntity(
                new FileInputStream(file2), -1);
        reqEntity.setContentType("binary/octet-stream");
        reqEntity.setChunked(true); // Send in multiple parts if needed
        httppost.setEntity(reqEntity);
        HttpResponse response = httpclient.execute(httppost);
        //Do something with response...
    } catch (Exception e) {
        // show error
    }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
 }

PHP-server的代码应该是什么样的?

谢谢,波阿斯

我们可以在服务器中获取图像:

$imageStoreFolder = DESTINATION_OF_IMAGE_UPLOAD_FOLDER // change this where image is uploaded
if(isset($_FILES) && count($_FILES)){
    foreach($_FILES as $file){
        $source = $file['tmp_name'];
        $destination = $imageStoreFolder.$file['name'];
        move_uploaded_file($source, $destination);
    }
}