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

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

A.M.F 16-06-07 19:22

בעיה בהעלאת קובץ ZIP דרך אספלורר
 
היי

בניתי מערכת של העלאת קבצים לשרת, וכשאני מעלה קובץ ZIP דרך הדפדפן IE, אז זה משנה לי את הסיומת של הקובץ ומשנה אותה למשהו כזה - filename.x-compressed-zip
מישהו יודע למה ואיך אפשר לסדר?

תודה לעוזרים

Daniel 16-06-07 19:41

אז אתה עושה,
PHP קוד:

$filenameback explode('.'$filename);
$filename[0] = $filenameback[0];
$arrnew array_reverse($filenameback);
if(
strstr($filenameback[0], 'x-comp')) {
$filename[1] = "zip";
} else {
$filename[1] = $filenameback[0];
}
$newfilename $filename[0].$filename[1]; 

אין לי כוח לכתוב משהו יעיל יותר ><

בניה 16-06-07 19:41

זה מה שהמשתנה :
קוד:

$_FILES['userfile']['name']
מכיל לך?
או שזה:
קוד:

או $_FILES['userfile']['type']
?

A.M.F 16-06-07 20:07

מאסטרT אתה כתבת פונקציה שמתייחסת לקובץ בזמן ההעלאה, ובודקת את הסיומת לא? זה לא מה שצריך לעשות כי זה משנה את השם אחרי שהקובץ בשרת, וזה רק בIE.
בנייה, לא הבנתי למה התכוונת.

יכול להיות שלא הסברתי את עצמי טוב אז אנסה שוב-
נניח אני מעלה קובץ בשם website.zip אז אם אני מעלה אותו דרך אקספלורר, הקובץ, אחרי ההעלאה, הופך להיות בשם הזה-
website.x-compressed-zip
זה לא קורה אבל אם אני מעלה דרך FF.

בניה 16-06-07 20:51

תראה את הקוד שלך.
יש לי הרגשה שאתה משתמש במשתנה
קוד:

$_FILES['userfile']['type']
כדי לקבל את הסיומת של הקובץ למרות שלא צריך.

A.M.F 16-06-07 22:31

ציטוט:

נכתב במקור על ידי בניה (פרסם 500968)
תראה את הקוד שלך.
יש לי הרגשה שאתה משתמש במשתנה
קוד:

$_FILES['userfile']['type']
כדי לקבל את הסיומת של הקובץ למרות שלא צריך.

זה חלק הקוד שבו אני משתמש במשתנה הזה:
קוד:

$type = substr($_FILES['zip']['type'], strpos($_FILES['zip']['type'], "/")+1);
                                $changed = $file_name . "." . $type;
                                $path = "./" . thmsFILES . $changed;

                        if (move_uploaded_file($_FILES['zip']['tmp_name'],$path)) {
                                $path = str_replace("./", "", $path);
                       
                        }


Elad-A 17-06-07 06:48

תשתמש בזה:

PHP קוד:

function get_extension ($file_ext)
{
    return 
substr(strrchr($file_ext'.'), 1);



A.M.F 17-06-07 15:56

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 501061)
תשתמש בזה:

PHP קוד:

function get_extension ($file_ext)
{
    return 
substr(strrchr($file_ext'.'), 1);



תודה רבה, זה הסתדר לי עם זה.
אבל רק מעניין אותי לדעת, למה זה לא עבד בIE בדרך שבה אני השתמשתי?

בניה 17-06-07 17:15

ציטוט:

נכתב במקור על ידי A.M.F (פרסם 501261)
תודה רבה, זה הסתדר לי עם זה.
אבל רק מעניין אותי לדעת, למה זה לא עבד בIE בדרך שבה אני השתמשתי?

כנראה IE שולח את ה content type בצורה שונה.
בכל מקרה, הערך שבתא type הוא ערך שמגיע מהדפדפן ולא כדאי לסמוך עליו כי אפשר לזייף אותו.

A.M.F 17-06-07 18:06

ציטוט:

נכתב במקור על ידי בניה (פרסם 501316)
כנראה IE שולח את ה content type בצורה שונה.
בכל מקרה, הערך שבתא type הוא ערך שמגיע מהדפדפן ולא כדאי לסמוך עליו כי אפשר לזייף אותו.

הבנתי, תודה. יש אולי עוד משתנים שמגיעים מהדפדפנים שכדאי לדעת אותם?


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

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