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

הוסטס - פורום אחסון האתרים הגדול בישראל (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.. יש כל מיני מסדים אחרים אבל בהם לא יצא לי להשתמש עדיין...

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

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


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

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