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

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

Serlid 11-07-06 18:35

[שאלה]בקשר למערכת העלאת קבצים
 
שלום לכם בניתי מערכת ממש בסיסית של העלאת קבצים
עכשיו אני רוצה שהוא יעלה לשרת הוא ישנה לקובץ את השם למספר רנדומלי..
נגיד
קוד:

545484-blablabla.jpg
מקווה שהבנתם
עכשיו לבקשה השניה אני מעוניין לדעת איך אני חוסם סיומות מסויימות
כמו exe rar וכו' ושיהיה אפשר להעלות רק קבצי תמונות

תודה רבה :-D

Tomer 11-07-06 18:43

PHP קוד:

$rand rand(11111,99999); 

מספר ראנדומלי בן 5 ספרות (11111 עד 99999)

Serlid 11-07-06 19:06

כן עכשיו כל הקטע שאני צריך שזה ישנה את השם של הקובץ..
קוד:

$rand-filename.jpg
תודה .

x-ray 11-07-06 19:09

אתה יכול לבדוק את סוג הקובץ ולאפשר רק תמונות
PHP קוד:

if($_FILE['file']['type'])==image/jpeg 

או משהו בסגנון...

אם אתה לא רוצה ככה אתה יכול להוציא את סיומת הקובץ (תשתמש בפונקציה על מנת להוציא כל מה שאחרי הנקודה)
ובשביל שם רנדומלי אתה משנה את שם הקובץ כמו שתומר אמר לך ואז בפונקציה
move_uploaded_file
הפרמטר השני שאתה מכניס יהיה:
PHP קוד:

$rand rand(11111,99999); 
move_uploaded_file($_FILES['file']['tmp_name'],$rand

מקווה שעזרתי.

Serlid 11-07-06 19:27

ציטוט:

נכתב במקור על ידי x-ray
אתה יכול לבדוק את סוג הקובץ ולאפשר רק תמונות
PHP קוד:

if($_FILE['file']['type'])==image/jpeg 

או משהו בסגנון...

אם אתה לא רוצה ככה אתה יכול להוציא את סיומת הקובץ (תשתמש בפונקציה על מנת להוציא כל מה שאחרי הנקודה)
ובשביל שם רנדומלי אתה משנה את שם הקובץ כמו שתומר אמר לך ואז בפונקציה
move_uploaded_file
הפרמטר השני שאתה מכניס יהיה:
PHP קוד:

$rand rand(11111,99999); 
move_uploaded_file($_FILES['file']['tmp_name'],$rand

מקווה שעזרתי.

אחי הראשון שהבאתי לצערי לא עובד..
ו
PHP קוד:

if(move_uploaded_file($_FILES['myfile']['tmp_name'],$rand)) { 

רושם לי את זה:
קוד:

Warning: move_uploaded_file(44077): failed to open stream: Permission denied in **** on line 16
 
Warning: move_uploaded_file(): Unable to move '/tmp/phpeqmODN' to '44077' in **** on line 16


x-ray 11-07-06 19:54

תן גישות 777

בניה 11-07-06 20:10

ב"ה


הפונקציה move_uploaded_file גם מעבירה את הקובץ וגם נותנת לו שם.
אז אתה צריך בסוף הנתיב של התקיה שאתה רוצה שהוא יועבר אליה לכתוב את השם שאתה רוצה לתת לו.
אם אתה רוצה לתת לו את השם שהיה לו במחשב הלקוח אז זה יראה ככה:
PHP קוד:

$target_dir="/home/bnaya/";
move_uploaded_file($_FILES['file']['tmp_name'],$target_dir.$_FILES['file']['name']); 

ואם אתה רוצה להוסיף לו משהוא לפני השם אז תעשה ככה:
PHP קוד:

$target_dir="/home/bnaya/";
$prefix=time();
move_uploaded_file($_FILES['file']['tmp_name'],$target_dir.$prefix.$_FILES['file']['name']); 

בקשר לבדיקת סיומות זו הדרך שאני משתמש בה:
כדי להשיג את סיומת הקובץ אני עושה ככה:
PHP קוד:

$file_ext=substr($_FILES['file']['name'],strrpos($_FILES['file']['name'],'.'+1)); 

במקרה שהקובץ יהיה
קוד:

1.zip
אז המשתנה
קוד:

$file_ext
יהיה שווה zip
ואז כשיש לך את הסיומת שלו אתה כבר תעשה עם זה מה שאתה צריך.

x-ray 11-07-06 20:25

בניה,אני זוכר שלפני כמעט שנה שבניתי את המערכת העלאות הראשונה שלי השתמשתי בפונקציה הזאת שלך :)

BlueNosE 11-07-06 20:36

עידן, אני מתאר לעצמי שהוא כמוני לקח את זה מהמדריך בWEBMASTER ;P

x-ray 11-07-06 20:43

שהתחלתי לא ידעתי בכלל מה זה webmaster חחחח
טוב בשביל שלא נקבל אזהרה נפסיק פה :)


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

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