httpurlconnection post php android


httpurlconnection post php android

我在android中有一个文件上传器,我想发送数据(字符串),怎么做,$post['data']如何在php中使用它?

上传文件工作良好

我的代码是这个

------------------------------------------------------------

 try { 
                 // open a URL connection to the Servlet
               FileInputStream fileInputStream = new FileInputStream(sourceFile);
               URL url = new URL(upLoadServerUri);
               // Open a HTTP  connection to  the URL
               conn = (HttpURLConnection) url.openConnection(); 
               conn.setDoInput(true); // Allow Inputs
               conn.setDoOutput(true); // Allow Outputs
               conn.setUseCaches(false); // Don't use a Cached Copy
               conn.setRequestMethod("POST");
               conn.setRequestProperty("Connection", "Keep-Alive");
               conn.setRequestProperty("ENCTYPE", "multipart/form-data");
               conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
               conn.setRequestProperty("uploaded_file", fileName);
               dos = new DataOutputStream(conn.getOutputStream());
               dos.writeBytes(twoHyphens + boundary + lineEnd); 
               dos.writeBytes("Content-Disposition: form-data; name='"uploaded_file'";filename='""
                         + fileName + "'""  + lineEnd);

               dos.writeBytes(lineEnd);


               // create a buffer of  maximum size
               bytesAvailable = fileInputStream.available(); 
               bufferSize = Math.min(bytesAvailable, maxBufferSize);
               buffer = new byte[bufferSize];
               // read file and write it into form...
               bytesRead = fileInputStream.read(buffer, 0, bufferSize);  
               while (bytesRead > 0) {
                 dos.write(buffer, 0, bufferSize);
                 bytesAvailable = fileInputStream.available();
                 bufferSize = Math.min(bytesAvailable, maxBufferSize);
                 bytesRead = fileInputStream.read(buffer, 0, bufferSize);   
                }
               // send multipart form data necesssary after file data...
               dos.writeBytes(lineEnd);
               dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
               // Responses from the server (code and message)
               serverResponseCode = conn.getResponseCode();
               String serverResponseMessage = conn.getResponseMessage();
               Log.i("uploadFile", "HTTP Response is : " 
                       + serverResponseMessage + ": " + serverResponseCode);
               if(serverResponseCode == 200){
                   runOnUiThread(new Runnable() {
                        public void run() {
                            String msg = "File Upload Completed.'n'n See uploaded file here : 'n'n"
                                          +" http://www.androidexample.com/media/uploads/"
                                          +uploadFileName;
                            messageText.setText(msg);
                            Toast.makeText(UploadToServer.this, "File Upload Complete.", 
                                         Toast.LENGTH_SHORT).show();
                        }
                    });                
               }    
               //close the streams //
               fileInputStream.close();
               dos.flush();
               dos.close();
          } catch (MalformedURLException ex) {
              dialog.dismiss();  
              ex.printStackTrace();
              runOnUiThread(new Runnable() {
                  public void run() {
                      messageText.setText("MalformedURLException Exception : check script url.");
                      Toast.makeText(UploadToServer.this, "MalformedURLException", Toast.LENGTH_SHORT).show();
                  }
              });
              Log.e("Upload file to server", "error: " + ex.getMessage(), ex);  
          } catch (Exception e) {
              dialog.dismiss();  
              e.printStackTrace();
              runOnUiThread(new Runnable() {
                  public void run() {
                      messageText.setText("Got Exception : see logcat ");
                      Toast.makeText(UploadToServer.this, "Got Exception : see logcat ", 
                              Toast.LENGTH_SHORT).show();
                  }
              });
              Log.e("Upload file to server Exception", "Exception : " 
                                               + e.getMessage(), e);  
          }

这是一个有用的链接:如何使用POST 将参数添加到HttpURLConnection

您可以使用:NameValuePair List来执行此操作。像这样:

List<NameValuePair> nameValuePairList = new ArrayList<NameValuePairList>();
params.add(new BasicNameValuePair("someParam","someValue"));
OutputStream OS = con.getOutPutStream();
BufferWriter writer = new BufferWriter(new OutPutStreamWriter(os,"UTF-8");
writer.write(getQuery(params));
writer.flush();
writer.close();
os.close()