android 上传图片到php服务器

WBOY
Freigeben: 2016-08-08 09:22:36
Original
1198 Leute haben es durchsucht

android代码

public class EX08_11 extends Activity
{
  /* 变量声明
   * newName:上传后在服务器上的文件名称
   * uploadFile:要上传的文件路径
   * actionUrl:服务器对应的程序路径 */
//  private String newName="345444.jpg";
  private String uploadFile="/sdcard/345444.jpg";
  private String acti//*********/upload.php";
  private TextView mText1;
  private TextView mText2;
  private Button mButton;
  
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mText1 = (TextView) findViewById(R.id.myText2);
    mText1.setText("文件路径:\n"+uploadFile);
    
    mText2 = (TextView) findViewById(R.id.myText3);
    mText2.setText("上传网址:\n"+actionUrl);
    /* 设定mButton的onClick事件处理 */    
    mButton = (Button) findViewById(R.id.myButton);
    mButton.setOnClickListener(new View.OnClickListener()
    {
      public void onClick(View v)
      {
        uploadFile();
      }
    });
  }
  
  /* 上传文件吹Server的method */
  private void uploadFile()
  {
//    String end = "\r\n";
//    String twoHyphens = "--";
    String boundary = "*****";
    try
    {
      URL url =new URL(actionUrl);
      HttpURLConnection con=(HttpURLConnection)url.openConnection();
      /* 允许Input、Output,不使用Cache */
//      con.setReadTimeout(5 * 1000); 
      con.setDoInput(true);
      con.setDoOutput(true);
      con.setUseCaches(false);
      /* 设定传送的method=POST */
      con.setRequestMethod("POST");
      /* setRequestProperty */
      con.setRequestProperty("Connection", "Keep-Alive");
      con.setRequestProperty("Charset", "UTF-8");
      con.setRequestProperty("enctype",
                         "multipart/form-data;boundary="+boundary);
      /* 设定DataOutputStream */
      DataOutputStream ds = 
        new DataOutputStream(con.getOutputStream());
      /*ds.writeBytes(twoHyphens + boundary + end);
        ds.writeBytes("Content-Disposition: form-data; " +
                    "name=\"file1\";filename=\"" +
                    newName +"\"" + end);


      ds.writeBytes(end);  */

      /* 取得文件的FileInputStream */
      FileInputStream fStream = new FileInputStream(uploadFile);
      /* 设定每次写入1024bytes */
      int bufferSize = 1024;
      byte[] buffer = new byte[bufferSize];

      int length = -1;
      /* 从文件读取数据到缓冲区 */
      while((length = fStream.read(buffer)) != -1)
      {
        /* 将数据写入DataOutputStream中 */
        ds.write(buffer, 0, length);
      }
//      ds.writeBytes(end);
//      ds.writeBytes(twoHyphens + boundary + twoHyphens + end);

      /* close streams */
      fStream.close();
      ds.flush();
      
      
      /* 取得Response内容 */
      InputStream is = con.getInputStream();
      int ch;
      StringBuffer b =new StringBuffer();
      while( ( ch = is.read() ) != -1 )
      {
        b.append( (char)ch );
      }
      /* 将Response显示于Dialog */
      showDialog(b.toString().trim());
      /* 关闭DataOutputStream */
      ds.close();
    }
    catch(Exception e)
    {
      showDialog(""+e);
    }
  }
  
  /* 显示Dialog的method */
  private void showDialog(String mess)
  {
    new AlertDialog.Builder(EX08_11.this).setTitle("Message")
     .setMessage(mess)
     .setNegativeButton("确定",new DialogInterface.OnClickListener()
     {
       public void onClick(DialogInterface dialog, int which)
       {          
       }
     })
     .show();
  }
}

php代码

$data = file_get_contents('php://input');
$time = date("YmdHis");
$rand = rand(0,100);
$filename = $_SERVER['DOCUMENT_ROOT'].'/image/'.$time.$rand.'.jpg';
while(file_exists($filename))
{
 $filename = $_SERVER['DOCUMENT_ROOT'].'/image/'.$time.rand(0,100).'.jpg'; 
}

echo $filename;
$handle = fopen($filename, 'w');
if ($handle)
{

  fwrite($handle,$data);
  fclose($handle);

  echo "success";
}
?>

以上就介绍了android 上传图片到php服务器,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!