PDA

View Full Version : مشکل در دانلود فایل



nimar9
پنج شنبه 28 فروردین 1393, 16:33 عصر
سلام من با کد دانلود به درستی موفق به دانلود شدم اما من با یه Shared Prefences آدرس محل دانلود رو پیدا میکنم اما وقتی میخواد شروع کنه به دانلود یهو ارور Unfortunately , aa has Stoped میده.
مشکل از کجاست.
نکته: فایل به درستی وجود دارد و آدرس هم به درستی است.

package ir.Nimar9.aa;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.Toast;

public class Sal extends Activity {

// Progress Dialog
private ProgressDialog pDialog;

// Progress dialog type (0 - براي نوار پيشرفت افقي)
public static final int progress_bar_type = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sal);

SharedPreferences Aval = getSharedPreferences("Aval", 0);
final String Avalid = Aval.getString("Aval", "");

SharedPreferences Dovom = getSharedPreferences("Dovom", 0);
final String Dovomid = Dovom.getString("Dovom", "");

SharedPreferences Sal = getSharedPreferences("Sal", 0);
final Editor SalID = Sal.edit();

FrameLayout fr1=(FrameLayout) findViewById(R.id.SalF1);
FrameLayout fr2=(FrameLayout) findViewById(R.id.SalF2);

fr1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for (int i = 1; i < 7; i++){
final String AddressZ="/sdcard/Android/data/ir.Nimar9.aa/"+ Avalid + "/" + Dovomid + "/1391/Q01.jpg";
final String file_url = "http://nimar9.ir/Android/ir.Nimar9.aa/"+ Avalid + "/" + Dovomid + "/1391/Q01.jpg";
new DownloadFileFromURL().execute(file_url);
};
}
});

fr2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
final String AddressZ="/sdcard/Android/data/ir.Nimar9.aa/"+ Avalid + "/" + Dovomid + "/1392/Q01.jpg";
final String file_url = "http://nimar9.ir/Android/ir.Nimar9.aa/"+ Avalid + "/" + Dovomid + "/1392/Q01.jpg";
new DownloadFileFromURL().execute(file_url);

}
});


}
/**
* Dialogنمايش
* */
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case progress_bar_type:
pDialog = new ProgressDialog(this);
pDialog.setMessage("در حال بارگذاري ، لطفا صبر کنيد");
pDialog.setIndeterminate(false);
pDialog.setMax(100);
pDialog.setProgressStyle(ProgressDialog.STYLE_HORI ZONTAL);
pDialog.setCancelable(true);
pDialog.show();
return pDialog;
default:
return null;
}
}


/**
* Background Async Task to download file
* */
class DownloadFileFromURL extends AsyncTask<String, String, String> {

private final Editor SalID = null;
private final String AddressZ = null;

/**
قبل از شروع دانلود مي گيم پروگرس بار رو به نمايش بزار
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(progress_bar_type);
}

/**
دانلود فايل در يک نخ جدا
* */
@Override
protected String doInBackground(String... f_url) {
int count;
try {

URL url = new URL(f_url[0]);
URLConnection conection = url.openConnection();
conection.connect();
// به دست آوردن حجم فايل
int lenghtOfFile = conection.getContentLength();

// input stream براي خواندن فايل- with 8k buffer
InputStream input = new BufferedInputStream(url.openStream(), 8192);

// Output stream براي ذخيره فايل
OutputStream output = new FileOutputStream(AddressZ);

byte data[] = new byte[1024];

long total = 0;

while ((count = input.read(data)) != -1) {
total += count;
// publishing the progress....
// صدا زده خواهد شد onProgressUpdate بعد از اين
publishProgress(""+(int)((total*100)/lenghtOfFile));

// نوشتن اطلاعات داخل فايل
output.write(data, 0, count);
}

// flushing output
output.flush();

// هاstreamبستن
output.close();
input.close();

} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}

return null;
}

/**
بروزکردن پروگرس بار
* */
protected void onProgressUpdate(String... progress) {
//تنظيم مقدار پروگرس بار
pDialog.setProgress(Integer.parseInt(progress[0]));
}

/**
بعد از اتمام کار
* **/
@SuppressWarnings("deprecation")
@Override
protected void onPostExecute(String file_url) {
// لغو نمايش پروگرس بار بعد از اتمام دانلود
dismissDialog(progress_bar_type);

// تنظيم فايل دانلود شده براي نمايش
SalID.putString("Sal", AddressZ);
SalID.commit();
}

}

}