View Full Version : بررسی وجود فایل روی وب
  
nimar9
شنبه 30 فروردین 1393, 23:19 عصر
سلام 
برای مثال میخواهم ببینم آیا فایل مقابل با این آدرس روی وب وجود دارد یا خیر؟ 
http://nimar9.ir/wp-content/uploads/2014/01/1129-0-150x150.png
ممنون
parvizwpf
یک شنبه 31 فروردین 1393, 03:21 صبح
http://stackoverflow.com/questions/4596447/java-check-if-file-exists-on-remote-server-using-its-url
nimar9
یک شنبه 31 فروردین 1393, 20:54 عصر
داداش من بلدم سرچ کنم تو نت و سایت stackoverflow سرچ کنم.
خیلی کد هم پیدا کردم مهم اینجاست که هیچی نفهمیدم و چه جوری استفاده کنم.
#root#
یک شنبه 31 فروردین 1393, 22: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, 22: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, 21: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, 22: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
یک شنبه 14 اردیبهشت 1393, 00: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, 01: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.