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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=105403)

dor77 13-10-13 17:42

PHP - תקין לעשות כך?
 
שלום.
יש לי טופס שמעלה תמונה.
השם של התמונה הוא:

PHP קוד:

$_FILES["file"]["name"

אני רוצה לתת לתמונה שם של משתנה כלשהו, עשיתי כך:

PHP קוד:

$new_name $var["var_name"]; 
move_uploaded_file($_FILES["file"]["tmp_name"],
"../uploads/" $new_name); 

אבל ראיתי שהקובץ לא עולה בפורמט תמונה כי הסיומת נעלמה..
ואז פשוט עשיתי כך:

PHP קוד:

$new_name '.$var["var_name"].'.jpg
move_uploaded_file($_FILES["file"]["tmp_name"],
"../uploads/" $new_name); 

והכל עובד מעולה, העניין הוא שהקובץ לא באמת jpg, יכול להיות שהוא png או bmp...
זה תקין "לשקר" ככה?
חוץ מזה, זה מאוד עוזר כי אז בשליפת התמונה אני לא צריך לבדוק את הפורמט כי יש לי פורמט אחיד..מכאן נשאלת השאלה, כך זה בכל האתרים שמעלים אליהם תמונות?

אשמח לתשובות :)

Anyone 13-10-13 18:27

אתה יכול לקבל את הסיומת של הקובץ המועלה כך:

קוד:

$ext = pathinfo($_FILES["file"]["tmp_name"], PATHINFO_EXTENSION);
בתור התחלה תבדוק שהסיומת היא חוקית לתמונה, אחר כך אתה יכול לשמור את הסיומת בעמודה נפרדת במסד או ביחד עם שם הקובץ - איך שנוח לך.

Haimz 13-10-13 20:00

תוכל לקבוע את המשתנה newname ככה:
קוד:

$new_name = '.$var["var_name"].' . end(explode(".", $_FILES["file"]["name"]));

dor77 14-10-13 00:56

הפתרונות של שניכם מעולים אבל אני חייב פורמט תמונה אחיד, אני מעדיף להימנע מלשמור את הסיומת במסד, יש פתרון יותר טוב ממה שאני כתבתי?

תודה!

zoharesh 14-10-13 01:12

אתה יכול להמיר את התמונה לאיזה פורמט שתרצה בלי לדעת את הפורמט הנוכחי (PHP יזהה אוטומטית).
http://www.php.net/manual/en/functio...fromstring.php

אבל... למה אתה לא רוצה לשמור את השם של התמונה במסד?


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

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