הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [php] שאלה בקשר לבדיקת סוג הקובץ . (https://hosts.co.il/forums/showthread.php?t=57907)

reXtea 15-12-07 01:31

[php] שאלה בקשר לבדיקת סוג הקובץ .
 
תראו אני רוצה לבדוק את סוג הקובץ, זה לא בעיה...
אבל ברגע שמשתמש משנה את הסיומת זה בעצם עוקף את הבדיקה שלי... ואני לא רוצה שאנשים יתחקמו ויעלו לי קבצים תמונה שהם בעצם rar ואז יורידו למחשב וישנו תסיומת חזרה לrar...

האם יש דרך לדעת את סוג הקובץ גם כאשר המשתמש שינה את הסיומת? ניסתי גם את $file["type"]
וזה מראה את הסיומת ששונתה... ככה שזה לא עוזר... ראיתי שבimageshack הם עשו את זה אין לי מושג איך... ההימור שלי שזה משהו בcgi ...

בכ"מ, אם מישהו יודע, אשמח אם הוא ישתף אותי ואת כולנו...
תודה :]

Tomer 15-12-07 01:45

mime type

$_FILES['name']['type'] יחזיר לך את ה mime type של הקובץ. תבדוק אותו (לדוגמא: image/jpg אם אני זוכר נכון זו תמונת JPEG)

daMn 15-12-07 03:09

ציטוט:

נכתב במקור על ידי Tomer (פרסם 591325)
mime type

$_FILES['name']['type'] יחזיר לך את ה mime type של הקובץ. תבדוק אותו (לדוגמא: image/jpg אם אני זוכר נכון זו תמונת JPEG)

אכן במערך הדו-מימדי של FILES יש מערך של type שמחזיר לך את סוג הסיומת.
יש פה רשימה נחמדה של סוגי סיומות אם תצטרך:
http://www.phpfreaks.com/mimetypes.php

בכל מקרה אם לא תמצא סיומת תמיד תוכל להדפיס פשוט את המערך ולראות מה הוא נותן לך.
PHP קוד:

echo $_FILES['userfiles']['type']; 


reXtea 15-12-07 12:07

ציטוט:

נכתב במקור על ידי daMn (פרסם 591346)
אכן במערך הדו-מימדי של FILES יש מערך של type שמחזיר לך את סוג הסיומת.
יש פה רשימה נחמדה של סוגי סיומות אם תצטרך:
http://www.phpfreaks.com/mimetypes.php

בכל מקרה אם לא תמצא סיומת תמיד תוכל להדפיס פשוט את המערך ולראות מה הוא נותן לך.
PHP קוד:

echo $_FILES['userfiles']['type']; 


אנשים תלמדו לקרוא...
אמרתי כבר שנסתי את השיטה הזאת וזה לא מחזיר את הסוג המקורי של הקובץ אלה את מה ששניתי לו תשם...
נגיד היה לי קובץ: xx.php שינתי אותו לxx.png ואז זה מראה לי image/png.

זה לא עוזר לי...

יש עוד שיטה?

meshuga 15-12-07 16:04

תנסה mime_content_type

Tomer 15-12-07 16:28

ציטוט:

נכתב במקור על ידי reXtea (פרסם 591376)
אנשים תלמדו לקרוא...
אמרתי כבר שנסתי את השיטה הזאת וזה לא מחזיר את הסוג המקורי של הקובץ אלה את מה ששניתי לו תשם...
נגיד היה לי קובץ: xx.php שינתי אותו לxx.png ואז זה מראה לי image/png.

זה לא עוזר לי...

יש עוד שיטה?

תמונה שנשמרה כ- JPG ושינו לה סיומת ל PHP לא תגרום לה להיות text/plain פתאום, אלא היא תשאר image/jpg. כנראה שעשית משהו לא נכון.

דבר נוסף שלא קשור,
בחתימה שלך רשמת שאתה מתכנת ב mysql - רק ש mysql היא לא שפה. sql כן.

BlueNosE 15-12-07 16:43

ציטוט:

נכתב במקור על ידי Tomer (פרסם 591325)
mime type

$_FILES['name']['type'] יחזיר לך את ה mime type של הקובץ. תבדוק אותו (לדוגמא: image/jpg אם אני זוכר נכון זו תמונת JPEG)

אתה זוכר לא נכון
image/jpeg - תמונת JPEG לJPG או JPEG
image/gif - תמונת GIF
image/png - תמונת PNG
עוד?
http://www.webmaster-toolkit.com/mime-types.shtml

reXtea 15-12-07 18:27

ציטוט:

נכתב במקור על ידי Tomer (פרסם 591433)
תמונה שנשמרה כ- JPG ושינו לה סיומת ל PHP לא תגרום לה להיות text/plain פתאום, אלא היא תשאר image/jpg. כנראה שעשית משהו לא נכון.

דבר נוסף שלא קשור,
בחתימה שלך רשמת שאתה מתכנת ב mysql - רק ש mysql היא לא שפה. sql כן.

עשיתי דווקא הכל מצויין... לקחתי קובץ txt העלאתי אותו והוא זיהה את זה כ-> text/plain, שנתי לו את הסיומת לjpg והעלתי והוא זיהה את זה כ image/jpeg... זה פשוט לא הדרך לעשות את זה...

ובקשר לחתימה, לא כתבתי שפות תכנות, רק ציינתי את הידע שלי... ככה שגם AJAX זה לא בדיוק שפת תכנות אבל זה שיטת תכנות ואני לא כתבתי שם known languages או משהו כזה... רק כתבתי תידע שלי... =\

Tomer 15-12-07 18:59

ציטוט:

נכתב במקור על ידי reXtea (פרסם 591488)
עשיתי דווקא הכל מצויין... לקחתי קובץ txt העלאתי אותו והוא זיהה את זה כ-> text/plain, שנתי לו את הסיומת לjpg והעלתי והוא זיהה את זה כ image/jpeg... זה פשוט לא הדרך לעשות את זה...

ובקשר לחתימה, לא כתבתי שפות תכנות, רק ציינתי את הידע שלי... ככה שגם AJAX זה לא בדיוק שפת תכנות אבל זה שיטת תכנות ואני לא כתבתי שם known languages או משהו כזה... רק כתבתי תידע שלי... =\

עדיין.. mysql זו תוכנה. מה שהתכוונת זה שיש לך ידע ב sql - בשפה.

reXtea 15-12-07 19:07

ציטוט:

נכתב במקור על ידי Tomer (פרסם 591498)
עדיין.. mysql זו תוכנה. מה שהתכוונת זה שיש לך ידע ב sql - בשפה.

האמת שלא, אני יודע לעבוד עם המסד נתונים mysql, זאת הייתה הכוונה שלי... כי אני לא יודע בשלמות sql...
בכ"מ אני כתבתי את זה כי ככה אני רוצה שזה יהיה...

SQL זאת השפה לעבוד עם Mysql, והמסד היחידי שאני יודע לעבוד איתו עם PHP זה mysql.. יש כל מיני מסדים אחרים אבל בהם לא יצא לי להשתמש עדיין...

בכ"מ, לא הבנתי מזה קשור לנושא... אם זה כל כך מפריע לך יכלת לשלוח לי הודעה פרטית לא הבנתי למה היית צריך לחרוג ממסגרת הנושא...

ולנושא, מישהו יודע איך עושים את זה?

Tomer 15-12-07 19:16

ציטוט:

נכתב במקור על ידי reXtea (פרסם 591504)
האמת שלא, אני יודע לעבוד עם המסד נתונים mysql, זאת הייתה הכוונה שלי... כי אני לא יודע בשלמות sql...
בכ"מ אני כתבתי את זה כי ככה אני רוצה שזה יהיה...

SQL זאת השפה לעבוד עם Mysql, והמסד היחידי שאני יודע לעבוד איתו עם PHP זה mysql.. יש כל מיני מסדים אחרים אבל בהם לא יצא לי להשתמש עדיין...

בכ"מ, לא הבנתי מזה קשור לנושא... אם זה כל כך מפריע לך יכלת לשלוח לי הודעה פרטית לא הבנתי למה היית צריך לחרוג ממסגרת הנושא...

ולנושא, מישהו יודע איך עושים את זה?

בגלל זה רשמתי "דרך אגב" (:

אמרת שיצרת קובץ TXT ריק, ושינית לו סיומת ל JPG. תנסה לקחת תמונת JPG אמיתית - ולשנות לה את הסיומת ל TXT, זה אמור להשאיר את ה mime type האמיתי. תבדוק את זה.

לדעתי בגלל שהקובץ txt הוא ריק אז זה משפיע על ה mime type.

Daniel 15-12-07 19:18

לפי דעתי

ברגע שתשנה קובץ לסיומת של TXT הוא תמיד יראה PLAIN TEXT. כי TXT אמור לשמש לכל מטרה.

שנה קובץ ZIP ל-JPEG, ותראה מה קורה.

reXtea 15-12-07 19:21

ציטוט:

נכתב במקור על ידי MasterT (פרסם 591511)
לפי דעתי

ברגע שתשנה קובץ לסיומת של TXT הוא תמיד יראה PLAIN TEXT. כי TXT אמור לשמש לכל מטרה.

שנה קובץ ZIP ל-JPEG, ותראה מה קורה.

עשיתי גם את זה... ניסתי לשחק עם הרבה סיומות... txt לgif
rar לpng כל דבר שעלה על רוחי... זה פשוט לא השיטה =X..

בכ"מ האתר היחידי שחוסם את הקטע זה imageshack...
fileflyer לא חוסם... זה מוזר...

meshuga 15-12-07 22:09

ציטוט:

נכתב במקור על ידי reXtea (פרסם 591512)
עשיתי גם את זה... ניסתי לשחק עם הרבה סיומות... txt לgif
rar לpng כל דבר שעלה על רוחי... זה פשוט לא השיטה =X..

בכ"מ האתר היחידי שחוסם את הקטע זה imageshack...
fileflyer לא חוסם... זה מוזר...

כמו שאמרתי. זה כנראה משהו בסגנון הפונקציה mime_content_type (או פונקציות דומות) שדורשות התקנת רכיב נוסף על השרת...מן הסתם לimageshack אין בעיה להתקין תוסף.

אבל..תנסה לבדוק בphpclasses.org אולי מישהו הכין מחלקה שבודקת סוג קובץ...אני מניח שגם זה מוגבל ואין את כל סוגי הקבצים..אבל שווה לבדוק..


עריכה:
שווה לך לנסות לראות אם זה עובד:
http://il.php.net/manual/en/function.exif-imagetype.php
אבל זה רק לתמונות..

reXtea 15-12-07 22:35

ציטוט:

נכתב במקור על ידי meshuga (פרסם 591597)
כמו שאמרתי. זה כנראה משהו בסגנון הפונקציה mime_content_type (או פונקציות דומות) שדורשות התקנת רכיב נוסף על השרת...מן הסתם לimageshack אין בעיה להתקין תוסף.

אבל..תנסה לבדוק בphpclasses.org אולי מישהו הכין מחלקה שבודקת סוג קובץ...אני מניח שגם זה מוגבל ואין את כל סוגי הקבצים..אבל שווה לבדוק..


עריכה:
שווה לך לנסות לראות אם זה עובד:
http://il.php.net/manual/en/function.exif-imagetype.php
אבל זה רק לתמונות..

תודה אחי... אבל בונא אני שנה מנסה להפעיל את הext הזה ולא הולך לי ...
אבל אתה חושב שזה מביא באמת את הפרטים הנכונים או שזה כמו השאר מביא פרטים שגויים? בכ"מ שני הפונקציות שהבאת לי לא פתוחות בשרת שלי אני צריך לפתוח איזה ext ואני לא יודע בדיוק איזה...

BlueNosE 15-12-07 22:57

ציטוט:

נכתב במקור על ידי meshuga (פרסם 591597)
עריכה:
שווה לך לנסות לראות אם זה עובד:
http://il.php.net/manual/en/function.exif-imagetype.php
אבל זה רק לתמונות..

ציטוט:

Requirements

Your PHP must be compiled in with --enable-exif. PHP does not require any additional library for the exif module. Windows users must also have the mbstring extension enabled.
בהרבה שרתים שעבדתי בהם זה לא היה מאופשר..


כל הזמנים הם GMT +2. הזמן כעת הוא 16:14.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ