Web sunucu sorunu POST görüntü

0 Cevap java

Ben bir web sunucusuna bir jpg görüntü göndermek için çalışıyorum. Ben sunucuda benim PHP komut test ettik ve ben bir formu kullanarak bir resim upload edememek ediyorum. Şimdi ben Java kodunu sınarken ancak aynı komut dosyası kullanarak sunucuya görüntü POST bir Blackberry uygulaması yapmaya çalışıyorum, PHP HİÇBİR POSTed olduğunu, ben yanlış yapıyorum emin değilim ama bana söyler 'Böyle bir şey yapıyorum:

String mBoundary = "SUPSUPSUPSUP";

/* Preparar objeto a enviar */

InputStream mImagen = this.getClass().getResourceAsStream("sample.jpg");            
byte[] mBytesPostear = IOUtilities.streamToBytes(mImagen);

HttpConnection mConexion = (HttpConnection) Connector.open("http://www.raspberry.com/script.php");                      

/* Preparar headers del POST. Es multiformulario con POST de un archivo */
mConexion.setRequestMethod(HttpConnection.POST);
mConexion.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_TYPE, HttpProtocolConstants.CONTENT_TYPE_MULTIPART_FORM_DATA + ";boundary=" + mBoundary);
mConexion.setRequestProperty(HttpProtocolConstants.HEADER_CONTENT_LENGTH, String.valueOf(mBytesPostear.length));
mConexion.setRequestProperty( "x-rim-transcode-content", "none" );                      

/* Preparar contenido de salida */
ByteArrayOutputStream mOutput = new ByteArrayOutputStream();            
OutputStream mOS = mConexion.openOutputStream();

/* Escribir contenido */
String nuevaLinea = "\r\n";
String contDisp="Content-Disposition:form-data; name=\"foto\";filename=\"sample.jpg\"";
String contEnc = "Content-Transfer-Encoding: binary";
String type="Content-Type:image/jpeg";

mOutput.write(nuevaLinea.getBytes());
mOutput.write("--".getBytes());
mOutput.write(mBoundary.getBytes());
mOutput.write(nuevaLinea.getBytes());
mOutput.write(contDisp.getBytes());
mOutput.write(nuevaLinea.getBytes());
mOutput.write(type.getBytes());
mOutput.write(nuevaLinea.getBytes());
mOutput.write(contEnc.getBytes());
mOutput.write(nuevaLinea.getBytes());
mOutput.write(nuevaLinea.getBytes());
mOutput.write(mBytesPostear);
mOutput.write(nuevaLinea.getBytes());
mOutput.write("--".getBytes());
mOutput.write(mBoundary.getBytes());
mOutput.write("--".getBytes());         
mOutput.write(nuevaLinea.getBytes());

/**********************/

/* Escribir el contenido */
mOS.write(mOutput.toByteArray());

mOutput.flush();
mOutput.close();

mOS.flush();
mOS.close();

/* Recibir respuesta del servidor */
InputStream mIS = mConexion.openInputStream();
int mLongitud = (int) mConexion.getLength();

if (mLongitud > 0) {                

    int mActual = 0;
    int mBytesLeidos = 0;
    byte[] mBytes = new byte[mLongitud];

    while ((mBytesLeidos != mLongitud) && (mActual != -1)){
        mActual = mIS.read(mBytes, mBytesLeidos, mLongitud - mBytesLeidos);
        mBytesLeidos += mActual;
    }               

    String mRespuesta = new String(mBytes);     
    System.out.println("Respuesta: " + mRespuesta);

} 

Ben sadece formu kullandığınızda Chrome tarafından gönderilen başlık klonlamak için çalıştı, ben de aynı bilgilere sahip düşünüyorum.

Hiçbir şey yayınlanmıştır eğer benim PHP komut dosyası ilk kontrolleri şey yayınlanmıştır olsaydı, o yüzden cevabı ben web sunucusu script "tüketmek" yapabiliyor ve ben BlackBerry cihaz veri yükleme olduğunu görebilirsiniz ama bir ileti döndürür hiçbir yayınlanmıştır olmasıdır.

Ben yanlış bir biçimde sunucuya bilgi gönderme düşünüyorum.

Herhangi bir yardım büyük mutluluk duyacağız.

Teşekkürler!

0 Cevap