...堆垛 我有一个带共享文件夹的网络服务器...它的地址是:
"http://192.168.1.1:9999/folder/0"
我搜索了大量有关下载文件的信息,需要帮助......
下载成功...如何将文件上传到我的机器人? (已启用服务器上的权限)...
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;
答案 0 :(得分:2)
要上传文件,您可以使用Multipart请求: http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html
client = new DefaultHttpClient(...);
HttpPost post = new HttpPost("some url");
MultipartEntity multipart = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
multipart.addPart("Description", new StringBody("Description"));
multipart.addPart("File", new FileBody(fileObject));
post.setEntity(multipart);
client.execute(post, new ResponseHandler() {
@Override
public Object handleResponse(HttpResponse response)
throws ClientProtocolException, IOException {
//handle response
}
});
答案 1 :(得分:1)
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
}