2017-07-08 66 views
0

我想通過android將圖片上傳到Perticular Url(www.myUrl.com/myFolderName/)並檢索該網址的地址。ServerResponse 404將圖片上傳到服務器

這裏是我的代碼

class SaveFile extends AsyncTask<String,String,String> 
{ 
    FileInputStream fileInputStream; 
    HttpURLConnection connection; 
    URL url; 
    DataOutputStream outputStream; 
    int bytesRead,bytesAvailable,bufferSize; 
    byte[] buffer; 
    int maxBufferSize = 1 * 1024 * 1024; 
    File selectedFile = new File(selectedImagePath); 
    //selectedImagePath = path of Image in phonememory 
    @Override 
    protected String doInBackground(String... params) 
    { 
     Log.v(TAG,"Image path is " + selectedImagePath); 

     try 
     { 
      fileInputStream = new FileInputStream(selectedFile); 
      url = new URL(SEND_IMAGE); 
      connection= (HttpURLConnection)url.openConnection(); 
      Log.v(TAG,"connection established"); 
      connection.setDoOutput(true); 
      connection.setDoInput(true); 
      connection.setRequestMethod("POST"); 
      connection.setRequestProperty("Connection","Keep-Alive"); 
      connection.setRequestProperty("ENCTYPE","multipart/form-data"); 
      connection.setRequestProperty("Content-Type","multipart/form-data;boundary=*****"); 
      //connection.setRequestProperty("image1",selectedImagePath); 
      //connection.setRequestProperty("user_id","1"); 
      outputStream = new DataOutputStream(connection.getOutputStream()); 

      outputStream.writeBytes("--*****\r\n"); 
      outputStream.writeBytes("Content-Disposition:form-data;name=\"uploaded_file\";filename=\""+selectedImagePath+"\""+"\r\n"); 
      outputStream.writeBytes("\r\n"); 
      //outputStream.writeBytes("--*****\r\n"); 
      bytesAvailable = fileInputStream.available(); 
      bufferSize = Math.min(bytesAvailable,maxBufferSize); 
      buffer = new byte[bufferSize]; 

      bytesRead = fileInputStream.read(buffer,0,bufferSize); 
      while (bytesRead>0) 
      { 
       outputStream.write(buffer,0,bufferSize); 
       bytesAvailable = fileInputStream.available(); 
       bufferSize = Math.min(bytesAvailable,maxBufferSize); 
       bytesRead = fileInputStream.read(buffer,0,bufferSize); 
      } 
      outputStream.writeBytes("\r\n"); 
      outputStream.writeBytes("--*****--\r\n"); 

      int serverResponseCode = connection.getResponseCode(); 
      String serverResponseMessage = connection.getResponseMessage(); 

      if(serverResponseCode == HttpURLConnection.HTTP_OK) { 
       String line; 
       StringBuilder sb = new StringBuilder(); 
       BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
       while ((line = reader.readLine()) != null) { 
        sb.append(line); 
       } 
       Log.v(TAG,"Response is " +sb.toString()); 

      } 
      Log.v("UploadImage", "Server Response is: " + serverResponseMessage + ": " + serverResponseCode); 
      fileInputStream.close(); 
      outputStream.flush(); 
      outputStream.close(); 
     } 
     catch (Exception e) 
     { 
      Log.v("UploadImage"," " + e.toString()); 
     } 
     return null; 
    } 


    @Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 


    } 
} 

,但我得到serverResponse 404

我試着像Uploading Image to Server - Android解決方案,但沒有奏效。

我搜查了很多,但無法找到解決方案

請幫助!!

+0

設備收到沒有帖子的內容是什麼? – Vyacheslav

+0

我不是你,你能解釋你想說什麼嗎? – Pranita

回答

0

我想說這可能是一個服務器錯誤。在大多數情況下,404是一個錯誤,表示「你使用了錯誤的URL」。檢查此網址是否正確。在瀏覽器中上傳數據。

+0

網址是正確的,我通過瀏覽器嘗試過。 – Pranita