PDA

View Full Version : سوال: کمک در مورد کار با فایلها و شناسایی پسوند ها و نمایش انها



milade
جمعه 26 مهر 1387, 06:31 صبح
سلام
من به یه مشکل یزرگ بر خوردم
من باید فایلهای pdf رو در یه سایت خاص دانلود کنم .
این کار رو با web client انجام می دم ولی یه مشکل هست
اگه من بخوام فقط فایلها با پسوند pdf رو دانلود کنم فایلهایی که url rewrite شدن دانلود نمی شه
اطلاعات بیشتر:

این دانلود می شه:
www.mysite.com/a.pdf (http://www.mysite.com/a.pdf)
ولی این نه:
www.mysite.com/pdf/a (http://www.mysite.com/pdf/a)

حالا چه کار کنم که وقتی یه ادرس rewrite شده دانلود می شه نوعش رو تشخیص بدم اگه به دردم خورد دانلودش کنم اگه نه رهاش کنم؟؟؟؟
لطفا کمکم کنید
با تشکر از همه عزیزان:قلب::بوس:

__H2__
یک شنبه 28 مهر 1387, 00:20 صبح
سلام
شما میتوانید فقط 9 بایت اولش را دانلود کنید
اگر نه بایت اول مطابق زیر بود، با یک فایل pdf روبرو هستید.


&H25
&H50
&H44
&H46
&H2D
&H3X
&H2E
&H3X
&H0D

X>=0 AndAlso X<=9

milade
یک شنبه 28 مهر 1387, 03:24 صبح
با تشکر از دوست خوبم ولی یه مشکل
من الان یه فایل pdf ام رو باز کردم دیدم 9 کاراکتر اولش این طوری هست:

倥䙄ㄭ㌮┊ꊏ㠊〠漠橢
یکی دیگه رو باز کردم دیدم این طوری هست:

%PDF-1.4
%
ایا کد شما در مورد این دو نیز صدق می کنه؟
________
یکی از دوستان گفت header رو بگیر و تشخیص بده چه طوری این کار رو کنم؟
با تشکر

__H2__
یک شنبه 28 مهر 1387, 09:38 صبح
سلام
دومی تقریباً صحیح است ولی اولی ایراد دارد...
اصولاً بهتر است از چیزی شبیه notepad استفاده نکنید و از یک ویرایشگر مبنای 16 استفاده کنید.
یک ویرایشگر مبنای 16 خیلی ساده در خود VS وجود دارد ولی برای استفاده از آن اول باید پسوند فایلتان را به bin تغییر دهید و سپس با VS بازش کنید VS->File->Open->File حالا باید بتوانید محتویات باینری را به وضوح تماشا کنید.



کی از دوستان گفت header رو بگیر و تشخیص بده چه طوری این کار رو کنم؟
هر فایلی یک header مخصوص خود را دارد و کلاً در مورد سوال شما، معنای این جواب، همان روشی میشود که من در پست قبلیم گفتم. (بایتهای نخستین را برای فرمت مورد نظر چک کنید.)


اگر فایل pdf ای پیدا کردید که acrobat آن را نشان دهد ولی فرمت باینری غیر انچه در پست قبلیم گفتم داشته باشد، نمونه اش را برای من هم بفرستید.

البته شما میتوانید کمتر از 9 بایت اول pdf را هم چک کنید و کمترین حدی که همچنان یک نیمچه ای قابل اعتماد است، چک کردن 4 بایت اول است، که در اصل میشود خواندن یک Integer که باید مقدار این عدد H46445025& یا معادل 1178882085 باشد

milade
یک شنبه 28 مهر 1387, 11:57 صبح
تست میکنم خبرش رو می دم
راستی برای تشخیص فایل تحت وب(aspx,html,htm,php,and ...)چی کار کنم؟
شرمنده زحمت می دم
ممنون
بای

__H2__
دوشنبه 29 مهر 1387, 00:30 صبح
سلام

راستی برای تشخیص فایل تحت وب(aspx,html,htm,php,and ...)چی کار کنم؟
همانطور که قبلاً خودتان اشاره کردید، خروجی یک url وبی چندان حساب و کتابی ندارد و مثلاً خروجی یک sitename.com/file.aspx میتواند هر چیزی باشد، bmp و mp3 یا pdf و...

پس کلاً url ها خیلی قابل اعتماد نیستند و در حالت معمول خروجی یک php و asp و aspx و htm و... یک فایل متنی html است که خروجی موارد فوق در این مورد هیچ فرقی هم ندارد.
شما باید فایل را متنی و در String بخوانید و ببینید میتوانید تگ های <html> و <body> را پیدا کنید یا نه؟
(البته شاید فایل ساختار html نداشته باشد و txt باشد و در مطلبی را توضیح داده باشد که شامل متن <html> و <body> هم بشود!!!)

در مورد فرمت های متنی و String کار سخت تر و بیقائده تر است مثل اینکه بخواهید تفاوت ini و inf را پیدا کنید!!!!
حتی تشخیص int از txt هم خیلی مشکل است و مشخصه بارز ini آن است که نوعی txt است که علامت [ و ] هم دارد !!!!

گمانم، درست نمیتوانم منظورم را منتقل کنم.