View Full Version : بررسی وجود فایل روی وب
nimar9
شنبه 30 فروردین 1393, 22:19 عصر
سلام
برای مثال میخواهم ببینم آیا فایل مقابل با این آدرس روی وب وجود دارد یا خیر؟
http://nimar9.ir/wp-content/uploads/2014/01/1129-0-150x150.png
ممنون
parvizwpf
یک شنبه 31 فروردین 1393, 02:21 صبح
http://stackoverflow.com/questions/4596447/java-check-if-file-exists-on-remote-server-using-its-url
nimar9
یک شنبه 31 فروردین 1393, 19:54 عصر
داداش من بلدم سرچ کنم تو نت و سایت stackoverflow سرچ کنم.
خیلی کد هم پیدا کردم مهم اینجاست که هیچی نفهمیدم و چه جوری استفاده کنم.
#root#
یک شنبه 31 فروردین 1393, 21:13 عصر
داداش من بلدم سرچ کنم تو نت و سایت stackoverflow سرچ کنم.
خیلی کد هم پیدا کردم مهم اینجاست که هیچی نفهمیدم و چه جوری استفاده کنم.
خب این یعنی شما هنوز جاوا رو خوب یاد نگرفتی (منم یه روز بلد نبودم) ، تو لینکی که دادن یه متد هست که لینک فایل مورد نظر رو بصورت رشته ورودی میگیره و در صورت وجود فایل true و در صورت نبود فایل false رو برمیگردونه
اون متد رو میزاری توی یه کلاس ، برای مثال میشه اینجوری ازش استفاده کرد :
if (exists("http://nimar9.ir/wp-content/uploads/2014/01/1129-0-150x150.png")) {
Log.i("tag" , "فایل موجود است" );
} else {
Log.i("tag" , "فایل موجود نیست" );
}
rubiks.kde
یک شنبه 31 فروردین 1393, 21:38 عصر
خب این یعنی شما هنوز جاوا رو خوب یاد نگرفتی (منم یه روز بلد نبودم) ، تو لینکی که دادن یه متد هست که لینک فایل مورد نظر رو بصورت رشته ورودی میگیره و در صورت وجود فایل true و در صورت نبود فایل false رو برمیگردونه
اون متد رو میزاری توی یه کلاس ، برای مثال میشه اینجوری ازش استفاده کرد :
if (exists("http://nimar9.ir/wp-content/uploads/2014/01/1129-0-150x150.png")) {
Log.i("tag" , "فایل موجود است" );
} else {
Log.i("tag" , "فایل موجود نیست" );
}
استفاده از کد هم راحته ولی شاید منظور دوستمون اینه که همون کد داره چیکار میکنه.
داداش من بلدم سرچ کنم تو نت و سایت stackoverflow سرچ کنم.
خیلی کد هم پیدا کردم مهم اینجاست که هیچی نفهمیدم و چه جوری استفاده کنم.
ببین دوست عزیز واسه اینکه متوجه بشه فایل روی هاست هست یا نه باید درخواست اون فایل رو بدی(درواقع کانکشن ایجاد میکنی و ...) حال سرور در جواب شما یه ریسپانس میده که این رسپانس طبق استاندارد دارای یه کد مثلا اگه کد استاتوس 200 باشه یعنی کانکشن موفقیت آمیز بوده و در نتیجه فایل موجوده یا اگه کد 404 بده یعنی فایلی با این آدرس که شما درخواست دادید موجود نیست.
لیست این کدها هم در RFC مربوط به http موجوده و میتونید لیست کامل رو ببینید.
این کارهم با بررسی ریسپانس صورت میگیره.
nimar9
شنبه 13 اردیبهشت 1393, 20:17 عصر
خب این یعنی شما هنوز جاوا رو خوب یاد نگرفتی (منم یه روز بلد نبودم) ، تو لینکی که دادن یه متد هست که لینک فایل مورد نظر رو بصورت رشته ورودی میگیره و در صورت وجود فایل true و در صورت نبود فایل false رو برمیگردونه
اون متد رو میزاری توی یه کلاس ، برای مثال میشه اینجوری ازش استفاده کرد :
if (exists("http://nimar9.ir/wp-content/uploads/2014/01/1129-0-150x150.png")) {
Log.i("tag" , "فایل موجود است" );
} else {
Log.i("tag" , "فایل موجود نیست" );
}
داداش متاسفانه من هر کاری می کنم مقدار False ّرگشت میده چیکار کنم.
چه فایل باشه ، چه نباشه false برگشت میده.
parvizwpf
شنبه 13 اردیبهشت 1393, 21:14 عصر
import java.net.*;
import java.io.*;
public static boolean exists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
// note : you may also need
// HttpURLConnection.setInstanceFollowRedirects(false )
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
این کد اون لینکه ، با کجاش مشکل دارید؟
nimar9
شنبه 13 اردیبهشت 1393, 23:02 عصر
دقیقا کدی رو که دادید رو کپی کردم و با این دستور فراخوانی کردم.
if (exists("http://nimar9.ir/wp-content/uploads/2014/01/1129-0-150x150.png")) {
Toast.makeText(MainActivity.this, "Vojod Darad", 1000).show();
} else {
Toast.makeText(MainActivity.this, "Vojod Na Darad", 1000).show();
}
ولی همش Toast کلمه ی Vojod Na Darad رو بر میگردونه. مشکل از کجاست. خودتون یه تست بکنید. اگر مشکل نداشت پروژه رو برام آپلود کنید. ممنون
parvizwpf
یک شنبه 14 اردیبهشت 1393, 00:17 صبح
مثل همیشه باید توجه داشت که یک پروسه نت ورک، نیازمند تردی جدا از ui شماست.موفق باشید.
public class OwnTest extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.blank_layout);
MyTask task=new MyTask();
task.execute("http://nimar9.ir/wp-content/uploads/2014/01/1129-0-150x150.png");
}
class MyTask extends AsyncTask<String, Void, Boolean>
{
@Override
protected Boolean doInBackground(String... arg0) {
String URLName=arg0[0];
try {
HttpURLConnection.setFollowRedirects(false);
Log.d("jj", "1");
// note : you may also need
// HttpURLConnection.setInstanceFollowRedirects(false )
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
Log.d("jj", "2");
con.setRequestMethod("HEAD");
Log.d("jj", "3");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
Log.d("jj", "4");
return false;
}
}
@Override
protected void onPostExecute(Boolean result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if(result)
{
Toast.makeText(getBaseContext(), "OK", Toast.LENGTH_SHORT).show();
}
}
}
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.