آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دانلود File Mime Type با کتابخانه Volley (خیلی فوری و ضروری)

mosafer  7 سال پیش  7 سال پیش
0 0

سلام

اولین سوالم اینه که file mime type چی هستن؟!

و اینکه برای دانلود انها با کتابخانه volley چگونه باید کار کنم و آیا میشه از این لینک و این لینک برای دانلود هم استفاده کنم که برای آپلود فایل ازشون استفاده کردم؟

ممنون میشم راهنمایی کنید

0 0
کسی هست راهنمایی کنه..ممنون میشم (7 سال پیش)
0 0
کسی هست در مورد File Mime Type ها توضیحی بده و بگه منظور از اینها ینی چی و چطور با کتابخانه Volley دانلودشون کنم؟! (7 سال پیش)
+1 0
سلام لینک (7 سال پیش)
0 0
ممنونم سید جان (7 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Soheil  7 سال پیش
+1 0

سلام .

file Mime type ها همون پسوند های خودمون هستن. :mp4 - jpg-png ....

جواب :لینک

0 0
آقا سهیل شما میتونید به من کمک کنید و بگید با این تیکه کد چکار باید بکنم و چطور به هدر Authorization basic رو اضافه کنم تا بتونم فایل رو دانلود کنم؟ (7 سال پیش)
پاسخ به سوال 
mosafer  7 سال پیش
0 0

سلام

سهیل جان من از این لینک استفاده کردم و لاگی که به من میده این هست و فکر میکنم درست کار نکرده..

 D/AudioFlinger: mixer(0xa7b83440) throttle end: throttle time(42)
E/FILE NAME: " .txt"
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/" .txt" (Permission denied)
W/System.err: at java.io.FileOutputStream.open(Native Method)
W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:169)
W/System.err: at com.example.mosafer.transport.FileDownloadActivity.onResponse(FileDownloadActivity.java:78)
W/System.err: at com.example.mosafer.transport.FileDownloadActivity.onResponse(FileDownloadActivity.java:29)
W/System.err: at com.example.mosafer.transport.InputStreamVolleyRequest.deliverResponse(InputStreamVolleyRequest.java:53)
W/System.err: at com.example.mosafer.transport.InputStreamVolleyRequest.deliverResponse(InputStreamVolleyRequest.java:15)
W/System.err: at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
W/System.err: at android.os.Handler.handleCallback(Handler.java:751)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err: at android.os.Looper.loop(Looper.java:154)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6119)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

ممنون میشم 

 

0 0
سلام . ب نظر میاد ادرس اشتباهی برای فایل دادی ک نتونسته اون فایل بخونه . باز خودت یه چکی بکن (7 سال پیش)
پاسخ به سوال 
mosafer  7 سال پیش
0 0

خب این طور هم میتونه باشه چون من علاوه بر این کدها باید یه چیز دیگه هم اضافه میکردم و اون Authorization برا هدرش هست که باید با این دستورات میفرستادم که انگار درست جا گذاریش نکردم. بهتره کد رو بذارم شما ببینید که قسمت متد ()getHeaders رو باید کجای کدم بذارم !!!

این کلاس InputStreamVolleyRequest :  

 class InputStreamVolleyRequest extends Request<byte[]> {
private final Response.Listener<byte[]> mListener;
private Map<String, String> mParams;

//create a static map for directly accessing headers
public Map<String, String> responseHeaders ;

public InputStreamVolleyRequest(int method, String mUrl ,Response.Listener<byte[]> listener,
Response.ErrorListener errorListener, HashMap<String, String> params) {
// TODO Auto-generated constructor stub

super(method, mUrl, errorListener);
// this request would never use cache.
setShouldCache(false);
mListener = listener;
mParams=params;
}

@Override
protected Map<String, String> getParams()
throws com.android.volley.AuthFailureError {
return mParams;
};

** آیا این متد رو اینجا باید بذارم؟ **
این قسمت رو خودم باید اضافه میکردم
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();

String credentials = "seyedali" + ":" + "12345"; //باید با یوزرنیم و پیورد کاربر فایل رو بخونم و دان کنم

String auth = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);

headers.put("Authorization", auth);
return headers;
}


@Override
protected void deliverResponse(byte[] response) {
mListener.onResponse(response);
}

@Override
protected Response<byte[]> parseNetworkResponse(NetworkResponse response) {

//Initialise local responseHeaders map with response headers received
responseHeaders = response.headers;

//Pass the response data here
return Response.success( response.data, HttpHeaderParser.parseCacheHeaders(response));
}
}

و اینم کلاس FileDownloadActivity :

 public class FileDownloadActivity extends ActionBarActivity implements Response.Listener<byte[]>, ErrorListener{
Button btn_download;
InputStreamVolleyRequest request;
int count;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_file_download);
btn_download =(Button)findViewById(R.id.button5);
btn_download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//Change your url below
String mUrl = G.url + "file/download/1";
request = new InputStreamVolleyRequest(Request.Method.GET, mUrl, FileDownloadActivity.this, FileDownloadActivity.this, null);

Log.e("Url ", mUrl);

RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext(), new HurlStack());
mRequestQueue.add(request);
}
});
}

@Override
public void onResponse(byte[] response) {
HashMap<String, Object> map = new HashMap<String, Object>();
try {
if (response!=null) {

//Read file name from headers
String content =request.responseHeaders.get("Content-Disposition")
.toString();
StringTokenizer st = new StringTokenizer(content, "=");
String[] arrTag = st.toArray();

String filename = arrTag[1];
filename = filename.replace(":", ".");
Log.e("FILE NAME", filename);

Toast.makeText(this, "file name : " + filename , Toast.LENGTH_SHORT).show();

try{
long lenghtOfFile = response.length;

//covert reponse to input stream
InputStream input = new ByteArrayInputStream(response);
File path = Environment.getExternalStorageDirectory();
File file = new File(path, filename);
map.put("resume_path", file.toString());
BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(file));
byte data[] = new byte[1024];

long total = 0;

while ((count = input.read(data)) != -1) {
total += count;
output.write(data, 0, count);
}

output.flush();

output.close();
input.close();
}catch(IOException e){
e.printStackTrace();

}
}
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e("KEY_ERROR", "UNABLE TO DOWNLOAD FILE");
e.printStackTrace();
}
}

@Override
public void onErrorResponse(VolleyError error) {
Log.e("KEY_ERROR", "UNABLE TO DOWNLOAD FILE. ERROR:: "+error.getMessage());
}

}

ممنون میشم اشکال کارم رو بهم بگین.

0 0
کسی از دوستان نظری نداره؟ فقط اینجاش رو نمیدونمچکار کنم! (7 سال پیش)
0 0
دوستان راهنمایی کنید. من خیلی گشتم و اکثر کدها شبیه همین کدی هست که من دارم. ولی من میخوام که Authorization Basic هم به Header بفرستم ولی نمیدونم کجای این کدها باید این رو اضاف کنم! (7 سال پیش)
0 0
کسی نمیدونه چکار باید کرد. این داره خسته کننده میشه باید خیلی زود آمادش کنم ولی نمیدونم این تیکه رو باید چکار کنم؟ (7 سال پیش)
0 0
دوستان خواهش میکنم کمک و راهنمایی کنید! چرا این انجمن اینجور شده که هر وقت به مشکلی میخوری باید چند پیام بدیم که دوستان راهنمایی کنید ولی تعداد خیلی کمی فقط به سوال نگاه میندازن و هیچ گونه نظری ندارن و تعداد زیادی از دوستان حتی به انجمن نگاه هم نمیکنن. نمیدونم چی بگم (7 سال پیش)
0 0
ینی کسی از دوستان نظری کمکی راهنمایی و یا لینکی ندارن؟! (7 سال پیش)
0 0
دوستان گرامی کسی راهنمایی نمیکنه. واقعا نیاز به کمک و راهنمایی دارم. (7 سال پیش)
0 0
کسانی که با volley کار کردن و میتونن راهنمایی هایی بکنن لطفا کمک کنن. خیلی وقته نتونستم درستش کنم. خیلی هم جستجو کردم ولی چیزی دستگیرم نشد (7 سال پیش)
0 0
سلام در ارورهای لاگی که قرار دادید به خط 3 توجه کنید اجازه پرمیشن! رو چه اندرویدی تست میکنید؟ اگر اندروید 6 به بالاست باید بصورت runtime درخواست پرمیشن کنید. (7 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .