在這邊是使用HttpClient來實現上傳,程式如下
粉紅字是你要上傳檔案的路徑
紅色字是你的Server路徑
接著在Server寫一隻PHP檔案
update.php
因為在Android在上傳資料寫法,是使用多檔案上傳的方式,也就是For迴圈那邊,
所以在PHP也應該是這樣寫,但我PHP並沒直接跑迴圈,就直接抓第一筆 $_FILES['image0']
如果在PHP有必要接收兩個檔案以上,直接在裡面加入迴圈,就可以了
最後記得在Server的路徑建立資料夾,不然傳不上去
public void UploadFiles(String PathFile) { new Thread() { @Override public void run() { super.run(); List< NameValuePair> params = new ArrayList< NameValuePair>(); params.add(new BasicNameValuePair("file",PathFile)); HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("Server Address/update.php"); try{ //setup multipart entity MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); for(int i=0;i< params.size();i++){ //identify param type by Key if(params.get(i).getName().equals("file")){ File f = new File(params.get(i).getValue()); FileBody fileBody = new FileBody(f); entity.addPart("image"+i,fileBody); }else{ entity.addPart(params.get(i).getName(),new StringBody(params.get(i).getValue())); } } post.setEntity(entity); //create response handler ResponseHandler< String> handler = new BasicResponseHandler(); //execute and get response UploadFilesResponse = new String(client.execute(post,handler).getBytes(),HTTP.UTF_8); if(D) Log.e(TAG, "--- response ---"+ UploadFilesResponse); }catch(Exception e){ e.printStackTrace(); } } }.start(); }
粉紅字是你要上傳檔案的路徑
紅色字是你的Server路徑
接著在Server寫一隻PHP檔案
update.php
<?php if(move_uploaded_file($_FILES['image0']['tmp_name'], "./ImageFiles/".$_FILES['image0']['name'])){ echo "uploaded"; }else{ echo "unsuccessfully"; } ?>
因為在Android在上傳資料寫法,是使用多檔案上傳的方式,也就是For迴圈那邊,
所以在PHP也應該是這樣寫,但我PHP並沒直接跑迴圈,就直接抓第一筆 $_FILES['image0']
如果在PHP有必要接收兩個檔案以上,直接在裡面加入迴圈,就可以了
最後記得在Server的路徑建立資料夾,不然傳不上去
沒有留言:
張貼留言