我一直在寻找一个解决方案这个几个小时,但我找不到任何.
基本上,我想从我的Android设备上传文件到http网站.但是,我不知道如何做到这一点.我在设备上使用java,我想在服务器端使用PHP.我只想上传文件,不要在服务器上做任何事情.
任何人都可以提供代码和/或一个很好的链接,我需要什么?我在这方面几乎没有任何经验,我很失落.
谢谢,
NS
PS.我没有PHP编码的经验.
解决方法
是的,所以我发现java方面的东西.这样做,所以…是的.
public class Uploader extends Activity { private String Tag = "UPLOADER"; private String urlString = "YOUR_ONLINE_PHP"; HttpURLConnection conn; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String exsistingFileName = "/sdcard/uploader/data/testfile"; String lineEnd = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; try { // ------------------ CLIENT REQUEST Log.e(Tag,"Inside second Method"); FileInputStream fileInputStream = new FileInputStream(new File( exsistingFileName)); // open a URL connection to the Servlet URL url = new URL(urlString); // Open a HTTP connection to the URL conn = (HttpURLConnection) url.openConnection(); // Allow Inputs conn.setDoInput(true); // Allow Outputs conn.setDoOutput(true); // Don't use a cached copy. conn.setUseCaches(false); // Use a post method. conn.setRequestMethod("POST"); conn.setRequestProperty("Connection","Keep-Alive"); conn.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary); DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); dos.writeBytes(twoHyphens + boundary + lineEnd); dos .writeBytes("Content-Disposition: post-data; name=uploadedfile;filename=" + exsistingFileName + "" + lineEnd); dos.writeBytes(lineEnd); Log.e(Tag,"Headers are written"); // create a buffer of maximum size int bytesAvailable = fileInputStream.available(); int maxBufferSize = 1000; // int bufferSize = Math.min(bytesAvailable,maxBufferSize); byte[] buffer = new byte[bytesAvailable]; // read file and write it into form... int bytesRead = fileInputStream.read(buffer,bytesAvailable); while (bytesRead > 0) { dos.write(buffer,bytesAvailable); bytesAvailable = fileInputStream.available(); bytesAvailable = Math.min(bytesAvailable,maxBufferSize); bytesRead = fileInputStream.read(buffer,bytesAvailable); } // send multipart form data necesssary after file data... dos.writeBytes(lineEnd); dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); // close streams Log.e(Tag,"File is written"); fileInputStream.close(); dos.flush(); dos.close(); } catch (MalformedURLException ex) { Log.e(Tag,"error: " + ex.getMessage(),ex); } catch (IOException ioe) { Log.e(Tag,"error: " + ioe.getMessage(),ioe); } try { BufferedReader rd = new BufferedReader(new InputStreamReader(conn .getInputStream())); String line; while ((line = rd.readLine()) != null) { Log.e("Dialoge Box","Message: " + line); } rd.close(); } catch (IOException ioex) { Log.e("MediaPlayer","error: " + ioex.getMessage(),ioex); } } }