gpt4 book ai didi

android - 使用 Koush Ion 库上传多部分文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:40 24 4
gpt4 key购买 nike

在我的最后一个应用程序中,我将使用 Koush Ion图书馆。它非常方便,但我在将文件上传到我的休息服务器时遇到问题。注意:我的服务器对成功上传过程的响应是 1

我喜欢这样的代码:

public class MainActivity extends Activity {

Button upload, login;
TextView uploadCount;
ProgressBar progressBar;
String token, FilePath;

Future<String> uploading;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

upload = (Button) findViewById(R.id.upload);
uploadCount = (TextView) findViewById(R.id.upload_count);
progressBar = (ProgressBar) findViewById(R.id.progress);
token = "147c85ce29dc585966271280d59899a02b94c020";
FilePath = Environment.getExternalStorageDirectory().toString()+"/police.mp3";


upload.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if (uploading !=null && !uploading.isCancelled()){
resetUpload();
return;
}

upload.setText("Uploading...");

uploading = Ion.with(MainActivity.this)
.load("http://myserver.com/api/v1/tone/upload/?token="+token)
.setLogging("UPLOAD LOGS:", Log.DEBUG)
.uploadProgressBar(progressBar)
.uploadProgressHandler(new ProgressCallback() {

@Override
public void onProgress(int downloaded, int total) {
uploadCount.setText("" + downloaded + "/" + total);

}
})
.setMultipartParameter("title", "police")
.setMultipartParameter("category", "7")
.setMultipartFile("file_url", new File(FilePath))
.asString()
.setCallback( new FutureCallback<String>() {

@Override
public void onCompleted(Exception e, String result) {
// TODO Auto-generated method stub

}
})
;
}
});

但我从服务器收到 TimeoutException。我的问题是:1.我做的选择文件的方式对吗?!2. 是否应该将 Future Callback 用作字符串?!

posting data to web serveer with webform

我通过 fiddler2 检查我对服务器的请求,当我尝试将文件上传到服务器时......它显示请求发送,multipartParameters 发送但是当尝试发送文件时......fiddler 告诉我错误:

Protocol Violation Report:
Content-Length mismatch: Request Header indicated 455 bytes, but client sent 387 bytes.

最佳答案

我实际上为我工作,这是我的代码:

final File fileToUpload = new File(localFilePath);
Ion.with(context)
.load(Urls.UPLOAD_PICTURE)
.uploadProgressHandler(new ProgressCallback() {
@Override
public void onProgress(long uploaded, long total) {
// Displays the progress bar for the first time.
mNotifyManager.notify(notificationId, mBuilder.build());
mBuilder.setProgress((int) total, (int) uploaded, false);
}
})
.setTimeout(60 * 60 * 1000)
.setMultipartFile("upload", "image/jpeg", fileToUpload)
.asJsonObject()
// run a callback on completion
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
// When the loop is finished, updates the notification
mBuilder.setContentText("Upload complete")
// Removes the progress bar
.setProgress(0, 0, false);
mNotifyManager.notify(notificationId, mBuilder.build());
if (e != null) {
Toast.makeText(context, "Error uploading file", Toast.LENGTH_LONG).show();
return;
}
Toast.makeText(context, "File upload complete", Toast.LENGTH_LONG).show();
}
});
}

希望对大家有帮助:)

关于android - 使用 Koush Ion 库上传多部分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23589016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com