java 图片分段上传_java – 在分段上传请求中实现ProgressDialog

我使用以下方法将图像从Android上传到服务器.

public void uploadMultipart() {

//getting name for the image

String name = editText.getText().toString().trim();

//getting the actual path of the image

String path = getPath(filePath);

progress = ProgressDialog.show(this, "Subiendo imagen",

"Por favor, espere...", true);

//Uploading code

try {

String uploadId = UUID.randomUUID().toString();

//Creating a multi part request

new MultipartUploadRequest(this, uploadId, Constants.UPLOAD_URL)

.addFileToUpload(path, "image") //Adding file

.addParameter("name", name) //Adding text parameter to the request

.setNotificationConfig(new UploadNotificationConfig())

.setMaxRetries(2)

.startUpload(); //Starting the upload

} catch (Exception exc) {

Toast.makeText(this, exc.getMessage(), Toast.LENGTH_SHORT).show();

}

}

现在我想实现一个在上传完成时应该被解雇的ProgressDialog.我不知道多部分请求何时结束.

谢谢

解决方法:

有这个课程:

public class SingleUploadBroadcastReceiver extends UploadServiceBroadcastReceiver {

public interface Delegate {

void onProgress(int progress);

void onProgress(long uploadedBytes, long totalBytes);

void one rror(Exception exception);

void onCompleted(int serverResponseCode, byte[] serverResponseBody);

void onCancelled();

}

private String mUploadID;

private Delegate mDelegate;

public void setUploadID(String uploadID) {

mUploadID = uploadID;

}

public void setDelegate(Delegate delegate) {

mDelegate = delegate;

}

@Override

public void onProgress(String uploadId, int progress) {

if (uploadId.equals(mUploadID) && mDelegate != null) {

mDelegate.onProgress(progress);

}

}

@Override

public void onProgress(String uploadId, long uploadedBytes, long totalBytes) {

if (uploadId.equals(mUploadID) && mDelegate != null) {

mDelegate.onProgress(uploadedBytes, totalBytes);

}

}

@Override

public void one rror(String uploadId, Exception exception) {

if (uploadId.equals(mUploadID) && mDelegate != null) {

mDelegate.onError(exception);

}

}

@Override

public void onCompleted(String uploadId, int serverResponseCode, byte[] serverResponseBody) {

if (uploadId.equals(mUploadID) && mDelegate != null) {

mDelegate.onCompleted(serverResponseCode, serverResponseBody);

}

}

@Override

public void onCancelled(String uploadId) {

if (uploadId.equals(mUploadID) && mDelegate != null) {

mDelegate.onCancelled();

}

}

}

然后在你的活动中:

public class YourActivity extends Activity implements SingleUploadBroadcastReceiver.Delegate {

private static final String TAG = "AndroidUploadService";

private final SingleUploadBroadcastReceiver uploadReceiver =

new SingleUploadBroadcastReceiver();

@Override

protected void onResume() {

super.onResume();

uploadReceiver.register(this);

}

@Override

protected void onPause() {

super.onPause();

uploadReceiver.unregister(this);

}

public void uploadMultipart(final Context context) {

try {

String uploadId = UUID.randomUUID().toString();

uploadReceiver.setDelegate(this);

uploadReceiver.setUploadID(uploadId);

new MultipartUploadRequest(context, uploadId, "http://upload.server.com/path")

.addFileToUpload("/absolute/path/to/your/file", "your-param-name")

.setNotificationConfig(new UploadNotificationConfig())

.setMaxRetries(2)

.startUpload();

} catch (Exception exc) {

Log.e(TAG, exc.getMessage(), exc);

}

}

@Override

public void onProgress(int progress) {

//your implementation

}

@Override

public void onProgress(long uploadedBytes, long totalBytes) {

//your implementation

}

@Override

public void one rror(Exception exception) {

//your implementation

}

@Override

public void onCompleted(int serverResponseCode, byte[] serverResponseBody) {

//your implementation

}

@Override

public void onCancelled() {

//your implementation

}

}

现在,您将在成功/不成功上传时触发相应的回调.

标签:android,java,progressdialog,upload,multipart

来源: https://codeday.me/bug/20191006/1858374.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值