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

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

ShoQER 14-01-07 13:13

[PHP] בעיה בהעלאת קובץ בעזרת FTP דרך PHP
 
היי.

חשבתי לי קצת...ונמאס לי שאי אפשר להשתמש בפונקציות כמו MOVE_UPLOADED_FILE בגלל המצב הבטוח המעצבן הזה שיש בPHP |Stare|

אז קצת חיטטתי לי באינטרנט וגיליתי שניתן לבצע פעולות FTP דרך הPHP.

למדתי את הבסיס בשביל ההתחילה...

ובסוף עשיתי סתם משהו שאמור להעלאות קובץ ...

הקוד:
PHP קוד:

<?php

if(isset($_POST['send'])) {
    
// variables
    
$ftpUser "***";
    
$ftpPass "***";
    
$ftpServer "***";
    
$finalDir getcwd()."/ups";
    
$finalFile $finalDir $_FILES['file']['name'];
    
$sourceFile $_FILES['file']['tmp_name'];

    
// Connect to FTP
    
$ftpConn ftp_connect($ftpServer) or die("error 1");
    
$ftpResult ftp_login($ftpConn$ftpUser$ftpPass) or die("error 2");

    echo 
$finalDir;

    
// Uploading the file
    
$ftpUpload ftp_put($ftpConn$finalFile$sourceFileFTP_BINARY);
    if(
$ftpUpload) {
        echo 
":)";
    } else {
        echo 
":(";
    }

    
// Disconnecting from the FTP
    
ftp_close($ftpConn);
} else {
    
header("Location:index.php");
}

?>

אבל מה...הקוד הזה כל הזמן מחזיר לי את השגיאה:
Warning: ftp_put() [function.ftp-put]: Unable to access in /home/pilmen/domains/*****/public_html/Uploadir/includes/upload.php on line 19

חרשתי ב50 אתרים .. בכולם יש קודים דומים...ניסיתי את כולם! אבל זה מחזיר לי את אותה השגיאה...

חוץ מפעם אחת שבסוף הכל עבד חוץ מבעיה אחת...זה לא העלאה את הקובץ |Stare|

מדוע זה עושה לי כאלה בעיות?

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

O-B 14-01-07 13:49

אתה צריך להגדיר הרשאת 777 לקובץ..
השגיעה אומר שהוא לא מצליח לגשת לקובץ..

ShoQER 14-01-07 14:21

ציטוט:

נכתב במקור על ידי O-B (פרסם 405675)
אתה צריך להגדיר הרשאת 777 לקובץ..
השגיעה אומר שהוא לא מצליח לגשת לקובץ..

מגדירים הרשאות לאחר שמעלים אותו...הבעיה היא בהעלאה ...

omercnet 14-01-07 16:41

אתה עושה FTP לעצמך? או שאתה מעלה את זה למקום אחר?
חבל לעשות FTP לעצמך...
בכל מקרה, לא מובן אם אין גישה בFTP או לקובץ מקומית אצלך
תנסה להכנס פשוט עם תוכנת FTP ולהכנס לתקיה שאתה רוצה
יכול להיות שאין הרשאות בFTP..
ותבדוק מה יש בtmp_file, ותבדוק שגם אליו יש לך גישה בSSH או פשוט תעשה is_file() עליו

תתחיל לעשות debug על השלבים שלך, אתה תמצא את הבעיה

ShoQER 14-01-07 16:53

ציטוט:

נכתב במקור על ידי omercnet (פרסם 405800)
אתה עושה FTP לעצמך? או שאתה מעלה את זה למקום אחר?
חבל לעשות FTP לעצמך...
בכל מקרה, לא מובן אם אין גישה בFTP או לקובץ מקומית אצלך
תנסה להכנס פשוט עם תוכנת FTP ולהכנס לתקיה שאתה רוצה
יכול להיות שאין הרשאות בFTP..
ותבדוק מה יש בtmp_file, ותבדוק שגם אליו יש לך גישה בSSH או פשוט תעשה is_file() עליו

תתחיל לעשות debug על השלבים שלך, אתה תמצא את הבעיה

אני עושה לעצמי משום שפונקציות כמו move_uploaded_file לא עובדות במצב בטוח...
וברור שיש לי גישה....הרי יצרתי את התיקיה בעזרת FTP..(תוכנת FTP)

LosNir 14-01-07 16:58

תן הרשאות 777 ולקובץ שמעלה ולתיקיה שאליה הקובץ מועלה.

ShoQER 14-01-07 17:45

ציטוט:

נכתב במקור על ידי LosNir (פרסם 405811)
תן הרשאות 777 ולקובץ שמעלה ולתיקיה שאליה הקובץ מועלה.

לא עוזר

Tomer 14-01-07 19:10

נסה להוריד את getcwd מ $finalDir - כלומר שיהיה:
PHP קוד:

    $finalDir "ups"


RS324 14-01-07 20:42

קודם כל... הערה מאד חשובה

לא כל שרת תומך בפונקציות של FTP כגון FTP_CONNECT

2. זה יכול להוות פרצת אבטחה מאד חמורה אם מישהו הצליח בטעות לשים את הידיים על הקובץ היחידי הזה (יהיה לו גישה לכל השרת שלך)

3.לפני ה FTP PUT אתה אמור לעשות (שאתה בתוך ה FTP)
CWD - כלומר לעבור לתקייה שאתה רוצה ואז ליצור את הקובץ (אני כמעט בטוח לגבי זה)

4. פונקציות שעושות את זה במהירות של לפחות פי 3 הם CURL תבדוק את www.php.net/curl
ואולי תגלה עולם חדש.


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

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