2017-07-08 17 views
0

アンドロイドを介してPerticular Url(www.myUrl.com/myFolderName/)に画像をアップロードし、そのURLのアドレスを取得します。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); 


    } 
} 

ですが、私は私がUploading Image to Server - Androidのようなソリューションを試みたが、いない働いていた404

serverResponseを取得しています。

私はlot.butが助けてください

解決策を見つけるcouldntの検索!!

+0

ポストボディなしでデバイスは何を受信しますか? – Vyacheslav

+0

私はあなたをゲットしていない、あなたが言うことを説明することができますか? – Pranita

答えて

0

これはサーバーエラーかもしれません。 404はほとんどの場合、「間違ったURLを使用しました」というエラーです。このURLが正しいかどうかを確認して、ブラウザにデータをアップロードしてください。

+0

URLが正しいです。ブラウザを試しました。 – Pranita

関連する問題