2013-01-11 14 views
7

मैं एक फॉर्म में एफ़टीपी अपलोड के माध्यम से एक फाइल अपलोड करना चाहता हूं।PHP फॉर्म के माध्यम से एफ़टीपी अपलोड

<?php 

$ftp_server = "xxx"; 
$ftp_username = "xxx"; 
$ftp_password = "xxx"; 

// setup of connection 
$conn_id = ftp_connect($ftp_server) or die("could not connect to $ftp_server"); 

// login 
if (@ftp_login($conn_id, $ftp_username, $ftp_password)) 
{ 
    echo "conectd as [email protected]$ftp_server\n"; 
} 
else 
{ 
    echo "could not connect as $ftp_username\n"; 
} 

$file = $_FILES["file"]["name"]; 
$remote_file_path = "/home/www/lifestyle69/import/".$file; 
ftp_put($conn_id, $remote_file_path, $file, FTP_ASCII); 
ftp_close($conn_id); 
echo "\n\nconnection closed"; 

?> 

FTP कनेक्शन सफलतापूर्वक जोड़ता है लेकिन फाइल कहीं नहीं है:

<html> 
    <body> 
    <form enctype="multipart/form-data" action="upload_file.php" method="POST"> 
     <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
     Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
     <input type="submit" value="Upload File" /> 
    </form> 
    </body> 
</html> 

यहाँ PHP फ़ाइल है।

क्या कोई मेरी मदद कर सकता है?

धन्यवाद!

+0

क्या डेटाबेस? फ़ोल्डर अनुमतियों की जांच करें जिन्हें उन्हें 777 – vodich

+0

पर सेट किया जाना चाहिए, क्षमा करें। मैं एफटीपी कनेक्शन लिखना चाहता था। लेकिन यह काम नहीं करता है। – Raffinatore

+0

यदि आपके पास एक बड़ा रूप है तो आपको फिर से टाइप करने की आवश्यकता है?

? –

उत्तर

6

क्योंकि आप <input name="uploadedfile" type="file" /> है:

$file = $_FILES["file"]["name"]; // wrong 
$file = $_FILES["uploadedfile"]["name"]; // right 

क्योंकि आप PHP द्वारा संग्रहीत अस्थायी प्रतिलिपि है, जो पर मौजूद है के फ़ाइल नाम की जरूरत है सर्वर:

ftp_put($conn_id, $remote_file_path, $file, FTP_ASCII); // wrong 
ftp_put($conn_id, $remote_file_path, $_FILES["uploadedfile"]["tmp_name"], 
     FTP_ASCII); // right 

का संदर्भ लें $ _FILES के बारे में अधिक जानकारी के लिए 0।

+0

धन्यवाद! अब यह काम कर रहा है!! :) – Raffinatore

1

क्या आप सुनिश्चित हैं कि जिस फ़ोल्डर को आप अपलोड कर रहे हैं उसे सही अनुमतियां हैं? इसे 777 पर chmoding करने का प्रयास करें और देखें कि क्या यह काम करता है।

+0

धन्यवाद, हाँ, लेकिन यह काम नहीं करता है। क्या आपको अन्य विचार मिल गए हैं? – Raffinatore

+2

बस एक सुझाव: किसी भी अस्वीकरण के बिना "777 पर chmoding का प्रयास करें" का सुझाव न दें "यह केवल परीक्षण के लिए करें। समस्या को हल करने के बाद इसे वापस सुरक्षित अनुमतियों पर वापस लाएं"। – mmalmeida

+0

@mmalmeida मुझे इसके बारे में आश्चर्य है। किसी भी पासवर्ड वाले FTP कनेक्शन के पीछे सर्वर पर अनुमति नहीं है? भले ही मेरे पास मेरे FTP होस्ट पर 777 फ़ोल्डर है, लेकिन इसे इंटरनेट से नहीं लिखा जा सकता है, आपको सर्वर में लॉग इन होना होगा। –

1

फ़ाइल अस्थायी नाम के साथ सर्वर पर संग्रहीत है, इसलिए जब आप $_FILES['file']['name'] अपलोड करने का प्रयास करते हैं, तो यह विफल हो जाता है, क्योंकि ऐसे नाम वाली फ़ाइल मौजूद नहीं है। इसके बजाय आप $_FILES['file']['tmp_name']

साथ ftp_put() बुलाना चाहिए यह समझाया है थोड़ा बेहतर here

+0

धन्यवाद! अब यह काम कर रहा है! :) – Raffinatore

संबंधित मुद्दे