package cn.itcast.upload;
import java.io.File;
import java.io.OutputStream;
import java.io.PushbackInputStream;
import java.io.RandomAccessFile;
import java.net.Socket;
import cn.itcast.service.FileService;
import cn.itcast.utils.StreamTool;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
public class UploadActivity extends Activity {
private static final String TAG = "UploadActivity";
private EditText filenameText;
private TextView resultVew;
private ProgressBar progressBar;
private FileService fileService;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
int size = msg.getData().getInt("size");
progressBar.setProgress(size);
float result = (float)progressBar.getProgress()/ (float)progressBar.getMax();
int p = (int)(result*100);
resultVew.setText(p+"%");
if(progressBar.getProgress()==progressBar.getMax()){
Toast.makeText(UploadActivity.this, R.string.success, 1).show();
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
fileService = new FileService(this);
filenameText = (EditText) this.findViewById(R.id.filename);
resultVew = (TextView) this.findViewById(R.id.result);
progressBar = (ProgressBar) this.findViewById(R.id.uploadbar);
Button button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String filename = filenameText.getText().toString();
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File uploadFile = new File(Environment.getExternalStorageDirectory(), filename);
uploadfile(uploadFile);
}else{
Toast.makeText(UploadActivity.this, R.string.sdcarderror, 1).show();
}
}
});
}
private void uploadfile(final File file){
new Thread(new Runnable() {
@Override
public void run() {
try {
progressBar.setMax((int)file.length());
String sourceid = fileService.find(file);
Socket socket = new Socket("192.168.1.157", 7878);
OutputStream outStream = socket.getOutputStream();
String head = "Content-Length="+ file.length() + ";filename="+ file.getName() + ";sourceid="+
(sourceid==null? "" : sourceid)+"\r\n";
outStream.write(head.getBytes());
PushbackInputStream inStream = new PushbackInputStream(socket.getInputStream());
String response = StreamTool.readLine(inStream);
System.out.println(response);
String[] items = response.split(";");
String id = items[0].substring(items[0].indexOf("=")+1);//服务返回绑定该文件的资源id
String position = items[1].substring(items[1].indexOf("=")+1);
if(sourceid==null) fileService.save(file, id);
RandomAccessFile fileOutStream = new RandomAccessFile(file, "r");
fileOutStream.seek(Integer.valueOf(position));
byte[] buffer = new byte[1024];
int len = -1;
int length = Integer.valueOf(position);
while( (len = fileOutStream.read(buffer)) != -1){
outStream.write(buffer, 0, len);
length += len;
Message msg = new Message();
msg.getData().putInt("size", length);
handler.sendMessage(msg);
}
fileOutStream.close();
outStream.close();
inStream.close();
socket.close();
if(length==file.length()) fileService.delete(file);
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
}).start();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android程序研发源码Android 文件断点续传源码.rar
共30个文件
class:13个
java:5个
xml:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 184 浏览量
2023-04-30
16:47:30
上传
评论
收藏 58KB RAR 举报
温馨提示
Android程序研发源码Android 文件断点续传源码.rar
资源推荐
资源详情
资源评论
收起资源包目录
Android程序研发源码Android 文件断点续传源码.rar (30个子文件)
FileUpload
.classpath 280B
assets
src
cn
itcast
utils
StreamTool.java 2KB
service
DBOpenHelper.java 774B
FileService.java 1KB
upload
UploadActivity.java 4KB
res
drawable-mdpi
icon.png 3KB
drawable-ldpi
icon.png 2KB
values
strings.xml 401B
layout
main.xml 1KB
drawable-hdpi
icon.png 4KB
bin
resources.ap_ 11KB
FileUpload.apk 18KB
cn
itcast
utils
StreamTool.class 2KB
service
FileService.class 2KB
DBOpenHelper.class 1KB
upload
R$string.class 549B
UploadActivity.class 3KB
R$layout.class 388B
UploadActivity$1.class 2KB
R$id.class 473B
UploadActivity$3.class 4KB
R$attr.class 334B
R$drawable.class 394B
R.class 517B
UploadActivity$2.class 2KB
classes.dex 11KB
default.properties 364B
.project 846B
AndroidManifest.xml 1KB
gen
cn
itcast
upload
R.java 1KB
共 30 条
- 1
资源评论
HappyGirl快乐女孩
- 粉丝: 1w+
- 资源: 4156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功