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

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

ozxbar 05-12-05 22:33

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

תודה לעוזרים.
יום טוב.

d0rix 05-12-05 22:41

אחי צור קשר איתי באייסקיו אני צריך לדבר איתך.

Eran-s 06-12-05 01:05

דוגמא מהתיעוד של php.net מהעמוד: http://il.php.net/manual/en/features.file-upload.php
אם הטופס הוא כדלהלן:
קוד:

<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

אז לאחר השליחה אפשר להשתמש במשתנה $_FILES['userfile']['type'] לבדיקת הסוג.
הסוג של gif הוא "image/gif", של jpeg הוא "image/jpeg" וכו'...

בהצלחה.

ozxbar 06-12-05 13:24

ציטוט:

נכתב במקור על ידי Eran-s
דוגמא מהתיעוד של php.net מהעמוד: http://il.php.net/manual/en/features.file-upload.php
אם הטופס הוא כדלהלן:
קוד:

<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

אז לאחר השליחה אפשר להשתמש במשתנה $_FILES['userfile']['type'] לבדיקת הסוג.
הסוג של gif הוא "image/gif", של jpeg הוא "image/jpeg" וכו'...

בהצלחה.

את זה אני יודע אבל אני לא משתמש בקוד שלי ככה
$_FILES['userfile']['type']
אני משתמש בתנאי if וזה שונה מאיך שזה מסודר פה...

אם תעזור לי אשמח.
יום טוב.

Deagly 06-12-05 13:29

אתה יכול לעשות ככה:
PHP קוד:

$extension $_FILES['file']['name'];
$extension explode("."$extension);
$extension $extension[count($extension)-1]; 

ואז במשתנה $extension אתה מקבל את סיומת הקובץ
ואז אתה יכול לעשות תנאי
שאם המשתנה $extension שווה לסיומת php אז תעשה שגיאה בעזרת die או exit או כל דבר אחר שעולה לך בראש =]

עריכה:
אתה יכול לעשות בתוך מערך את הסיומות שאתה לא רוצה שיוכלו לעלות ואז אתה יכול לבדוק אם הסיומת של הקובץ נמצאת במערך ע"י in_array, אם אני לא טועה רומן כתב על זה מדריך בפורום מדריכים של תכנות וסקריפטים, אז תחפש שם ;)

מקווה שעזרתי :)

ozxbar 06-12-05 15:41

ציטוט:

נכתב במקור על ידי Deagly
אתה יכול לעשות ככה:
PHP קוד:

$extension $_FILES['file']['name'];
$extension explode("."$extension);
$extension $extension[count($extension)-1]; 

ואז במשתנה $extension אתה מקבל את סיומת הקובץ
ואז אתה יכול לעשות תנאי
שאם המשתנה $extension שווה לסיומת php אז תעשה שגיאה בעזרת die או exit או כל דבר אחר שעולה לך בראש =]

עריכה:
אתה יכול לעשות בתוך מערך את הסיומות שאתה לא רוצה שיוכלו לעלות ואז אתה יכול לבדוק אם הסיומת של הקובץ נמצאת במערך ע"י in_array, אם אני לא טועה רומן כתב על זה מדריך בפורום מדריכים של תכנות וסקריפטים, אז תחפש שם ;)

מקווה שעזרתי :)

אני לא מצליח =/
עשיתי משהו אחר וזה לא מצליח לי....
מה שעשיתי זה
PHP קוד:

if ($ft !== "image/gif" || "text/txt" || "image/jpeg" || "image/jpg" || "image/swf") {
die;


המשתנה $ft שווה ל - $_FILES['file1']['type']

זה פשוט לא שולח את הקובץ...

תודה לעוזרים...
יום טוב.

Deagly 06-12-05 16:11

תעשה ככה:
PHP קוד:

if ($ft != "image/gif" || $ft != "text/txt" || $ft != "image/jpeg" || $ft != "image/jpg" || $ft != "image/swf") { 


Ikki 07-12-05 15:33

תעשה ע"י ביטויים רגרולריים.

ozxbar 07-12-05 16:12

ציטוט:

נכתב במקור על ידי Deagly
תעשה ככה:
PHP קוד:

if ($ft != "image/gif" || $ft != "text/txt" || $ft != "image/jpeg" || $ft != "image/jpg" || $ft != "image/swf") { 


תראה את הקוד שלי
PHP קוד:

  elseif ($ft == "image/gif" || $ft == "text/txt" || $ft == "image/jpeg" || $ft == "image/jpg" || $ft == "image/swf") {
    
copy$file1 "uploads/".time()."-".$file1_name ) or die ("the file not copy");
    echo 
"file url:<br>  <a href=\"uploads/".time()."-".$file1_name."\">http://www.***.net/u/uploads/".time()."-".$file1_name."</a>";
  } 

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

אשמח אם תעזור.
יום טוב.

Ikki 07-12-05 18:07

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

echo $_FILES['file']['name']; 

וכך תוכל לדעת מה זה כל סוג קובץ, כי השם הוא לא הסיומת.


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

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