现在的位置: 首页 > 综合 > 正文

android上传文件php服务器接收代码

2013年01月18日 ⁄ 综合 ⁄ 共 3107字 ⁄ 字号 评论关闭

php服务器需要修改一些文件限制

参考http://www.111cn.net/phper/php-cy/50203.htm

要注意的是修改完成后要重启apache服务,sudo /etc/init.d/apache2 restart

服务器代码save_upload_file.php:

<?php                                                                                                                                                          
function customError($errno, $errstr)
{ 
    echo "<b>Error:</b> [$errno] $errstr<br />";
    echo "Ending Script";
    die();
}

set_error_handler("customError");

if ($_FILES["imagefile"]["error"] > 0)
{
    echo "Error: " . $_FILES["imagefile"]["error"] . "<br />";
}
else
{
    echo "Upload: " . $_FILES["imagefile"]["name"] . "<br />";
    echo "Type: " . $_FILES["imagefile"]["type"] . "<br />";
    echo "Size: " . ($_FILES["imagefile"]["size"] / 1024) . " Kb<br />";
    echo "Stored in: " . $_FILES["imagefile"]["tmp_name"];

    if (file_exists("/home/lsc/phpupload/" . $_FILES["imagefile"]["name"]))
    {   
        echo $_FILES["imagefile"]["name"] . " already exists. ";
    }   
    else
    {   
        if(!move_uploaded_file($_FILES["imagefile"]["tmp_name"],
            "/home/lsc/phpupload/" . $_FILES["imagefile"]["name"])) {
                echo "move file error";
            }   
        echo "Stored in: " . "/home/lsc/phpupload/" . $_FILES["imagefile"]["name"] . "<br />";
        echo dirname(__FILE__);
    }   
}
?>

刚开始时候总是接收不到文件,后来才发现这里imagefile这个名字要和客户端的保持一致

android客户端代码:

package com.example.androidphpclient;



import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

	private final static String strUrl = "http://192.168.1.150/save_upload_file.php";
	private String uploadFile = "/sdcard/Diagram2.png";  
	private String srcPath = "/sdcard/Diagram2.png"; 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		new sendToPHP().execute();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	 class sendToPHP extends AsyncTask<String, Integer, String>{

		@Override
		protected String doInBackground(String... arg0) {
			// TODO Auto-generated method stub

			
			File file = new File(uploadFile);
			try {
			         HttpClient client = new DefaultHttpClient();  

			         HttpPost post = new HttpPost(strUrl); 
			     FileBody bin = new FileBody(file);
			     MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);  
			     reqEntity.addPart("imagefile", bin);
			     post.setEntity(reqEntity);  
			     HttpResponse response = client.execute(post);  
			     HttpEntity resEntity = response.getEntity();  
			     if (resEntity != null) {    
			               Log.i("RESPONSE",EntityUtils.toString(resEntity));
			         }
			     
			} catch (Exception e) {
			    e.printStackTrace();
			}
			
			return null;
		}
		
	       //onPostExecute方法用于在执行完后台任务后更新UI,显示结果  
       @Override  
       protected void onPostExecute(String result) {

       }
		 
	 }
}

错误报告的等级修改在php.ini的如下字段:

error_reporting



抱歉!评论已关闭.