Selamlar,

Ben sunucuya resim upload etmeye çalışıyorum ancak upload ederken 400 - Bad Request hatası alıyorum, sebebini bir türlü anlayamadım acaba kodda görmediğim yanlış biryer mi var bilemedim.

Bu arada apache'nin httpclient-4.3-alpha1 api'sini kullanıyorum.

UPDATE :

http://stackoverflow.com/questions/7860298/uploading-ms-word-files-from-android-to-net-wcf buradaki kodu denedim ancak şimdi debug ederken işte logcata hatayı yazdırdım da FileNotFoundException diyor.

FileInputStream fileInputStream = new FileInputStream(new File(existingFileName) );

yaparken dosyayı alıyor ancak,

inStream = new DataInputStream ( conn.getInputStream() );

şu satırda sıkıntı yapıyor, inStream null dönüyor ve orada FileNotFoundException diyor.

Yardımcı olursanız çok sevinirim.

public static String imgUpload(String url, List<NameValuePair> list, List<String> images){

String result = Constants.EMPTY;
Bitmap bm;

HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, ServiceConstant.TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, ServiceConstant.TIMEOUT_MILLISEC);

HttpParams p = new BasicHttpParams();
HttpClient httpclient = new DefaultHttpClient(p);

HttpPost httppost = new HttpPost(url);

String resimYol = images.get(0);
resimYol = resimYol.replace("file:///", "/");
bm = BitmapFactory.decodeFile(resimYol);

try{
    ResponseHandler<String> responseHandler = new BasicResponseHandler();

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bm.compress(CompressFormat.JPEG, 100, bos);
        byte[] data = bos.toByteArray();

        ByteArrayBody bab = new ByteArrayBody(data, resimYol);
        MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        reqEntity.addPart("uploaded", bab);
        httppost.setEntity(reqEntity);
        if (list != null) {         
            httppost.setEntity(new UrlEncodedFormEntity(list,"UTF-8"));         
        }           
        result = httpclient.execute(httppost,responseHandler);

        Log.d("RESIM_UPLOAD_SONUC", result.toString());        
}

catch (Exception e) {
      // handle exception here
      Log.e(e.getClass().getName(), e.getMessage());
    }
return result; 
}

Herkese teşekkürler.

soruldu: 12 Şub '13, 02:43

lastarabos's gravatar image

lastarabos
1.8k122742
cevap kabul oranı: 29%

değiştirildi: 15 Şub '13, 02:44


 public static String __imgUpload(String url, List<NameValuePair> list, List<String> images)
    {
         URL url1=null;
         HttpURLConnection conn = null;
         DataOutputStream dos = null;
         DataInputStream inStream = null;
         String existingFileName= null;

        String urlServer = url;
        String lineEnd = "\\r\\n";
        String twoHyphens = "--";
        String boundary =  "*****";
        String str = null;

        existingFileName=    images.get(0);
        existingFileName = existingFileName.replace("file:///", "/");
        int bytesRead, bytesAvailable, bufferSize;
        byte[] buffer;
        int maxBufferSize = Integer.MAX_VALUE;
        String responseFromServer = "";

          try {
            url1 = new URL(url);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

             try
             {
             FileInputStream fileInputStream = new FileInputStream(new File(existingFileName) );

              // Open a HTTP connection to the URL
              conn = (HttpURLConnection) url1.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", "application/stream");
              dos = new DataOutputStream( conn.getOutputStream() );
           //   dos.writeBytes(twoHyphens + boundary + lineEnd);
              //dos.writeBytes("Content-Disposition: form-data; name=\\"uploadedfile\\";filename=\\"" + existingFileName + "\\"" + 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);

              // close streams
              Log.e("Debug",twoHyphens + boundary + twoHyphens + lineEnd);
              fileInputStream.close();
              dos.flush();
              dos.close();
             }
             catch (MalformedURLException ex)
             {
                  Log.e("Debug", "error 1: " + ex.getMessage(), ex);
             }
             catch (IOException ioe)
             {
                  Log.e("Debug", "error 2: " + ioe.getMessage(), ioe);
             }
             //------------------ read the SERVER RESPONSE
             try {
                   inStream = new DataInputStream ( conn.getInputStream() );

                   while (( str = inStream.readLine()) != null)
                   {
                        Log.e("Debug","Server Response "+str);
                   }
                   inStream.close();

             }
             catch (IOException ioex){
                  Log.e("Debug", "error 3: " + ioex.getMessage(), ioex);
             }

             return str;
    }

Tamamdır resim yükleme olayını hallettim. Kodu buraya da yazıyorum ihtiyacı olan birisi olursa yardımcı olur inşaallah. Yardımlarınız için teşekkürler.

permanent link

cevaplandı: 15 Şub '13, 02:52

lastarabos's gravatar image

lastarabos
1.8k122742
cevap kabul oranı: 29%

değiştirildi: 15 Şub '13, 02:52

tebrikler :)

(15 Şub '13, 02:54) ercet00ilk ercet00ilk's gravatar image

Eyvallah. : )

(15 Şub '13, 03:13) lastarabos lastarabos's gravatar image

bunun bir çok nedeni olabilir. misal, dizinleri yazarken başına / koymazsanız büyük bir ihtimalle hata verir.. misal, jpeg resimi jpg diye kayıt ederseniz hata verir.. misal, resim png dir siz jpg olarak yolu verirsiniz hata verir.. daha çok link vermeme, resim yolunu vermeme, link ve resim yolu yanlış verme hataları olur. bazen de tarayıcı desteklemediği durumlarda olmaz mı? evet malesef olur..

permanent link

cevaplandı: 12 Şub '13, 13:25

ercet00ilk's gravatar image

ercet00ilk
994435662
cevap kabul oranı: 11%

1

tarayıcıyla alakasını anlayamadım

(13 Şub '13, 00:41) creseos creseos's gravatar image

resim yolu değil de mesela css nin bazı kodlarını desteklemiyor özellikle de ie'nin eski versiyonları. bazen bir tarayıcıda 10 numara görünen site diğer tarayıcıda felaket gösteriyor..

(14 Şub '13, 10:54) ercet00ilk ercet00ilk's gravatar image

Yani arkadaş tarayıcıyla upload etmiyor kendi yazdığı kodlarla upload yapmaya çalışıyor. O yüzden dedim

(15 Şub '13, 00:43) creseos creseos's gravatar image

http://stackoverflow.com/questions/7860298/uploading-ms-word-files-from-android-to-net-wcf buradaki kodu denedim ancak şimdi debug ederken işte logcata hatayı yazdırdım da FileNotFoundException diyor.

FileInputStream fileInputStream = new FileInputStream(new File(existingFileName) );

yaparken dosyayı alıyor ancak,

inStream = new DataInputStream ( conn.getInputStream() );

şu satırda sıkıntı yapıyor, inStream null dönüyor ve orada FileNotFoundException diyor.

(15 Şub '13, 02:44) lastarabos lastarabos's gravatar image

buradaki örnekler ve özellikle buradaki kaynak kütüphane kodları işinize yarayabilir. asıl hata kodu olmadan bir şey de diyemiyorum çünkü her şey olabilir ve ben sizi yanlış yönlendirebilirim..

permanent link

cevaplandı: 15 Şub '13, 01:26

ercet00ilk's gravatar image

ercet00ilk
994435662
cevap kabul oranı: 11%

server tarafından nasıl alıyorsunuz? bu stream'i

permanent link

cevaplandı: 21 Şub '13, 03:56

ibrahimkilich's gravatar image

ibrahimkilich
1
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819

Soruldu: 12 Şub '13, 02:43

Görüntüleme: 1,120 kez

Son güncelleme: 21 Şub '13, 03:56

powered by BitNami OSQA