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

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

Gold-System 24-04-07 23:20

[שאלה] איך אני אדע עם השרת שלי תומך \ לא תומך בפונקציה move_uploaded_file?
 
אהלן חבר'ה,

אני רוצה לבנות מערכת העלאת קבצים פשוטה,
ורציתי לדעת איך אני אוכל לדעת עם השרת שלי תומך \ לא תומך בפונקציה move_uploaded_file,

חג שמח,
|קורץ|

Eran-s 24-04-07 23:32

ציטוט:

move_uploaded_file
(PHP 4 >= 4.0.3, PHP 5)
רק להעשרת הידע:
PHP קוד:

if(function_exists('move_uploaded_file'))
 echo 
"The function supported"


Gold-System 25-04-07 15:36

בניתי את המערכת וכשאני מעלה קובץ, יש את השגיאה הבאה -
ציטוט:

Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 776 is not allowed to access /home owned by uid 0 in /home/goldsyst/domains/goldsystem.co.il/public_html/Upload/uploader.php on line 14
שגיאה בהעברת הקובץ מתקיית הקבצים הזמניים בשרת למיקום הסופי.

RS324 25-04-07 15:58

ציטוט:

נכתב במקור על ידי Gold-System (פרסם 466048)
בניתי את המערכת וכשאני מעלה קובץ, יש את השגיאה הבאה -

זה כי יש לך SAFE MODE במערכת... זה משהו אחר
בכל מקרה על התיקייה שאתה מעביר אליה תעשב CHMOD 777
וזה לא יעשה לך בעיות

Gold-System 25-04-07 18:08

עשיתי ולא עוזר.

BlueNosE 25-04-07 18:13

יש דרך לעקוף את זה.
אפשר לומר שאני גיליתי אותה למרות שזה לא כ"כ קשה.

בוא נאמר שזה קשור בTMP_NAME ובFWRITE..
תמשיך מפה לבד..

Gold-System 25-04-07 18:21

BlueNosE, אתה לא הכי עוזר לי,

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

BlueNosE 25-04-07 18:28

אתה לא צריך להתחיל להתבכיין, רק ניסיתי לעזור,
אני לא אמרתי לך יותר פשוט כי אסור לתת כאן קודים.
ואני לא יודע אם אחרים מכירים את השיטה.
אני אכוון אותך יותר:
לקובץ יש שם זמני שנקרא TMP_NAME.
אתה יכול לגשת אליו דרך $_FILES['name'].
תפתח אותו בפורמט פתיחת קובץ בשרת (פונקציות f*), תקרא ותזין את הנתונים לקובץ הלא זמני..

Gold-System 25-04-07 18:46

אין שום קובץ בשם שציינת,
אולי פה אסור לבקש קודים, אבל יש ה.פ.

LosNir 25-04-07 19:15

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 466161)
אתה לא צריך להתחיל להתבכיין, רק ניסיתי לעזור,
אני לא אמרתי לך יותר פשוט כי אסור לתת כאן קודים.
ואני לא יודע אם אחרים מכירים את השיטה.
אני אכוון אותך יותר:
לקובץ יש שם זמני שנקרא TMP_NAME.
אתה יכול לגשת אליו דרך $_FILES['name'].
תפתח אותו בפורמט פתיחת קובץ בשרת (פונקציות f*), תקרא ותזין את הנתונים לקובץ הלא זמני..

מותר לתת קודים |קורץ|

BlueNosE 25-04-07 19:32

וואלה?
אז קבל קוד מאולתר במקום:
PHP קוד:

<?php
$TMP 
$_FILES['fld']['tmp_name'];
$hdl fopen ($TMP"r");
$CNT fgets ($hdl);
fclose ($hdl);
$hdl fopen ("path/to/full/{$_FILES['fld']['name']}""w+");
fseek ($hdl0);//למקרה שהקובץ היה קיים. מקסימום תעשה בדיקה אם אתה לא רוצה OVERWRITE
fwrite ($hdl$CNT);
fclose ($hdl);

תהנה =]
לא נבדק.

---

שכחתי לציין שהתיקייה צריכה הרשאות קריאה וכתיבה. שים 777.

Gold-System 25-04-07 23:16

הנה, ניר אמר שמותר,
תודה רבה על הקוד :)
אבל באיזה קובץ לקרוא לו? פרטים..

BlueNosE 26-04-07 07:10

אתה שולח את המידע (הקובץ שהוא מעלה) לקובץ הזה כמו שאתה שולח את הקובץ בmove_uploaded_file.
הנתיב שהקובץ יועלה אליו הוא path/to/full, שנה לתיקייה שאתה רוצה.
כמובן שאתה צריך להגדיר enctype והכל כמו בטופס רגיל..

Gold-System 26-04-07 13:49

אפשר לנעול

Gold-System 26-04-07 13:52

* עריכה *
הצלחתי! עברתי את הפונקציה הזו מבלי להשתמש בכלל בקוד שלך,

אפשר לנעול,
תודה לכולם! :)

BlueNosE 26-04-07 14:30

על לא דבר..
אפשר לדעת איך?

Gold-System 26-04-07 14:34

עם הקובץ uploader.php
והפונקציה move_uploaded_file ..

עכשיו עוד משהו,
אני רוצה לעשות שאיך שאני מעלה קובץ mp3 או wmv, אז יהיה גם קישור לשמוע את מה שהעלתי גם ב media player ..

איך אני אעשה את זה?

BlueNosE 26-04-07 14:48

תבדוק אם זה סוג הקובץ ותעשה קישור? O_O

Gold-System 26-04-07 14:49

לא משנה.. ירדתי מזה,
משהו אחר,

איך אני אוכל לעשות שזה יתחיל נגיד לספור בטיימר של קוד JS,
למשל 1,2,3&#37; ..

ואז כשזה יגיע ל 100%, מקבלים לינק לקובץ שהועלה..

BlueNosE 26-04-07 15:00

אתה לא.. (בPHP, אלא אם אתה בעל השרת (ואתה לא))

Gold-System 26-04-07 15:01

מה אני לא?

BlueNosE 26-04-07 15:04

אין אפשרות לעשות את זה.
יש תוסף שרת לPHP5.2 (נדמה לי), אבל זה לא ממש רלוונטי לך.

Gold-System 26-04-07 15:12

הבנתי..
איזה עוד אפשרויות אתה מציע לעשות במערכת שבניתי?

Eran-s 26-04-07 15:20

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 466508)
אין אפשרות לעשות את זה.
יש תוסף שרת לPHP5.2 (נדמה לי), אבל זה לא ממש רלוונטי לך.

או CGI, יש סקריפטים מוכנים שאפשר להשתמש בהם לזה...

BlueNosE 26-04-07 15:22

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

Eran-s 26-04-07 15:33

ציטוט:

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

צריך גישת FTP בלבד אם יש תמיכת CGI

BlueNosE 26-04-07 15:39

מה? איך? תסביר

Eran-s 26-04-07 16:09

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 466533)
מה? איך? תסביר

קודם כל נוודא שאנחנו מדברים על אותו נושא... ה-Progress Bar שהוא רוצה להעלאה...
קיימים סקריפטים ב-CGI אשר עושים זאת, תריץ חיפוש בהוטסקרפיטס ותמצא...

BlueNosE 26-04-07 16:30

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

Gold-System 26-04-07 17:53

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

וזהו..
את השם - נדמה לי שאני יודע לעשות,
אבל אך אני אעשה את גודל הקובץ והמחיקה?

תודה :)

Eli-Hai 26-04-07 18:18

בדיקת שם הקובץ נעשית על ידי הפונקציה readdir(), בדיקת גודל הקובץ נעשית על ידי הפונקציה filesize(), ומחיקת הקובץ נעשית על ידי הפונקציה unlink().

EDIT
אוקי, אם אתה בונה מערכת העלאת קבצים בסדר גודל די גדול, הפונקציות הללו יאטו את קצב הטעינה של האתר ושל אינדקס הניהול. הכי טוב (לדעתי לפחות), בעת העלאת קובץ להכניס אותו למסד נתונים, ולהזין את שם הקובץ, הגודל שלו ושמו/מיקומו על השרת. ואז לטעון את כל הפרטים באינדקס, ולקשר את השדה של המיקום ללינק מחיקה.

Tomer 26-04-07 18:29

ציטוט:

נכתב במקור על ידי Gold-System (פרסם 466618)
משהו אחרון.. שחשוב,
אני רוצה לעשות מן טבלה כזו,
שם הקובץ גודל הקובץ מחיקה

וזהו..
את השם - נדמה לי שאני יודע לעשות,
אבל אך אני אעשה את גודל הקובץ והמחיקה?

תודה :)

תגיד לי, קשה לך לקרוא קצת על המערך $_FILES ?

יש גבול, אין לך אישור לשאול את השאלות האלו בלי להריץ חיפוש בגוגל לפני.

Gold-System 26-04-07 18:50

ציטוט:

נכתב במקור על ידי Tomer (פרסם 466639)
תגיד לי, קשה לך לקרוא קצת על המערך $_FILES ?

יש גבול, אין לך אישור לשאול את השאלות האלו בלי להריץ חיפוש בגוגל לפני.

קראתי, תומר, אבל זה באנגלית.. וזה לא כ"כ קל..
Eli-Hai - יש באתר כל מיני קודים, באיזה מהם להשתמש? אני מבקש כי אני לא מבין אנגלית ברמה שותפת .. וגם בחיים לא התנסתי בפונקציות שאמרת ..

BlueNosE 26-04-07 18:52

אם אתה רוצה לעשות סיור ש100&#37; יעבוד לך (אבל לא מאוד מהיר), תשתמש בglob.

Gold-System 26-04-07 18:53

מה ז"א "סיור"?
ומה זו הפונקציה הזאת glob?

BlueNosE 26-04-07 19:02

תקרא קצת במניואל :S
סיור - זה עובר בקבצים בתיקייה ומציג אותם.
glob (*)

Gold-System 26-04-07 19:09

ולמה אני צריך את זה?
אפשר את הקוד?

Tomer 26-04-07 20:15

לא, אי אפשר את הקוד.

http://il2.php.net/glob


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

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