Issue
STACkers... I have a webserver with shared folder... It's address is:
"http://192.168.1.1:9999/folder/0"
I have googled a lot of information about downloading files and need help...
Downloading is success... How can I do uploading files to my droid??? (permissions on server are enabled)...
case R.id.download: try { java.net.URL u = new java.net.URL("http://192.168.1.1:9999/file/2/01.mp3"); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); FileOutputStream f = new FileOutputStream(new File("/sdcard/in", "01.mp3")); InputStream in = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ( (len1 = in.read(buffer)) > 0 ) { f.write(buffer,0, len1); } f.close(); } catch (Exception e) { System.out.println("Nay, did not work"); textView.setText(e.getMessage()); } break;
- Network connection fail frequently especially for mobile clients. For example if you switch from Wifi to 3G then an existing network connection will break and you need to retry the request. The Apache HttpClient has an default DefaultHttpRequestRetryHandler object registered which will per default 3 times retry a failed connection. The problem is that switching from one network to another make take a little while and DefaultHttpRequestRetryHandler will retry immediately. How implement it to MY Down/UpLoading???
Solution
Please make sure you have the required Web Services for Posting.
Just pass the file and url of server and the following should run.
try{
int maxBufferSize=1024*1024;
File file = new File(YourPathToFile);
String fileName = file.getName();
URL url = new URL(YourUrlServer);
connection = (HttpURLConnection) url.openConnection();
// Allow Inputs & Outputs
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
// Enable POST method
connection.setRequestMethod("GET");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);
connection.setChunkedStreamingMode(maxBufferSize);
outputStream = new DataOutputStream( connection.getOutputStream() );
fileInputStream = new FileInputStream(file);
outputStream.writeBytes(twoHyphens + boundary + lineEnd);
outputStream.writeBytes("Content-Disposition: form-data; name=\"strAuthKey\"" + lineEnd);
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(SoapRequestProcessor.authKey());//authentication key
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(twoHyphens + boundary + lineEnd);
outputStream.writeBytes("Content-Disposition: form-data; name=\"mediaName\"" + lineEnd);
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(fileName); //file.lastModified()+"_"+
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(twoHyphens + boundary + lineEnd);
outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"IMAGEFILE\"" + lineEnd);
outputStream.writeBytes(lineEnd);
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);
buffer = new byte[bufferSize];
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
fileInputStream.close();
outputStream.close();
Log.d("RESPONSE","--"+connection.getResponseMessage());
}
catch (Exception e) {
Log.i("Exception: ",e.toString());
// TODO: handle exception
}
Answered By - SAMD
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.