2013-11-28 158 views
1

給出我試圖做一個窗體,上傳幾個字段和3個圖像。圖像將通過FTP上傳,當php上傳到遠程服務器時,通過ftp_connect()連接到ftp時出現問題。當php在共享主機中時,它無法連接到服務器。但是,當php在本地主機,它顯示沒有錯誤。我現在試圖在Localhost上完成這項工作,並首先將圖像ftp_put傳輸到遠程服務器,以隔離錯誤。 目前我收到此錯誤。警告:ftp_put()期望參數1是資源,布爾在

Warning: ftp_put() expects parameter 1 to be resource, boolean given in line 69 

這是本ftp_put($login,"abc.info/$photo",$_FILES["file"]["tmp_name"][$i],FTP_ASCII)

<?php 
ini_set('display_errors', 1); error_reporting(E_ALL); 

ob_start(); 
session_start(); 
include 'connect.php'; 
include 'Agentftpconnect.php'; 
if(!isset($_SESSION['username'])) 
{ 
    header("Location: home.php"); 
    exit; 
} 


if ($_POST) 
{ 
//get form data 



$Listingname = addslashes(strip_tags($_POST['Listingname'])); 
$Location = addslashes(strip_tags($_POST['Location'])); 
$nobed = addslashes(strip_tags($_POST['nobed'])); 
$zip = addslashes(strip_tags($_POST['zip'])); 
$price = ($_POST['price']); 


if (!$Listingname||!$nobed||!$Location||!$zip||!$price) 
    die ("Please fill out all fields"); 
    else 



    for($i=0;$i<3;$i++) 
    { 


if ((($_FILES["file"]["type"][$i] !== "image/gif") 
|| ($_FILES["file"]["type"][$i] !== "image/jpeg") 
|| ($_FILES["file"]["type"][$i] !== "image/jpg") 
|| ($_FILES["file"]["type"][$i] !== "image/pjpeg") 
|| ($_FILES["file"]["type"][$i] !== "image/x-png") 
|| ($_FILES["file"]["type"][$i] !== "image/png")) 
    && ($_FILES["file"]["size"][$i] > 400000)) 
die("File is not correct"); 

else{ 

    if ($_FILES["file"]["error"][$i] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"][$i] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"][$i] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"][$i]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"][$i] . "<br>"; 
    echo "<br>"; 

    if (file_exists("abc.info/rent" . $_FILES["file"]["name"][$i])) 
     { 
     die($_FILES["file"]["name"][$i] . " already exists please add another file, or change the name "); 
     } 

    else 

     { 
     $photo=$_FILES["file"]["name"][$i]; 
     ftp_put($login,"abc.info/$photo",$_FILES["file"]["tmp_name"][$i],FTP_ASCII) or die("Can not upload"); 
     echo "Stored in: " . "abc.info/rent/" . $_FILES["file"]["name"][$i]; 
     } 
    } 
} 



} 

    { 
     $photo0=$_FILES["file"]["name"][0]; 
     $photo1=$_FILES["file"]["name"][1]; 
     $photo2=$_FILES["file"]["name"][2]; 
     $username=$_SESSION['username']; 

      //register into database 
      mysqli_query($con,"INSERT INTO Listing (username,Listingname,Location,nobed,zip,price,pic1,pic2,pic3) VALUES 
       ('$username','$Listingname','$Location','$nobed','$zip','$price','$photo0','$photo1','$photo2');") or die(mysqli_error()); 


      echo "Listing Added"; 
    }   

     } 





else 
{ 

?> 

<form action="Submitlisting8.php" method="post" 
enctype="multipart/form-data"> 
Listing Name:<br /> 
<input type='text' name='Listingname'><p /> 
Location:<br /> 
<input type='text' name='Location'><p /> 
Number of Beds:<br /> 
<input type='test' name='nobed'><p /> 
Zip:<br /> 
<input type='text' name='zip'><p /> 
Price:<br /> 
<input type='text' name='price'><p /> 


<label for="file">Pic1(File must be exceed 4mb):</label> 
<input type="file" name="file[]" id="file[]"><br> 
<label for="file">Pic2(File must be exceed 4mb):</label> 
<input type="file" name="file[]" id="file[]"><br> 
<label for="file">Pic3(File must be exceed 4mb):</label> 
<input type="file" name="file[]" id="file[]"><br> 
<br> 
<input type='submit' name='submit' value='Submit'> 
</form> 

<FORM METHOD="LINK" ACTION="agentaccount.php"> 
<INPUT TYPE="submit" VALUE="Back to Account"> 
</form> 

<?php 

} 



?> 

FTPconnect

<?php 
$ftp_user_name='name'; 
$ftp_user_pass='pass'; 
$connection = 'ftp.abc.info'; 

$connect = ftp_connect($connection) or die("Couldn't connect to $connection"); 
$login=ftp_login($connect, $ftp_user_name, $ftp_user_pass); 
if(!$login) 
{ 
    die("But failed at login Attempted to connect to $connection for user $ftp_user_name...."); 
} 


?> 
+0

哪裏'$ login'從何而來? –

+0

我剛剛編輯的問題,包括我的ftpconnect php,$ login是從那裏 – Benyaman

回答

2

ftp_put()需要它是通過使用ftp_connect()獲得有效資源。如果您看到此錯誤訊息,您致電ftp_connect()失敗。您需要獲得ftp_connect()的有效資源,如果不能,則需要確定導致腳本無法連接到遠程主機的原因,因爲這是造成問題的根本原因。

爲了防止您的腳本失敗,你應該換你嘗試FTP在if聲明檢查,看看是否連接成功ftp_connect()

if (($resource = ftp_connect($host)) !== false) { 
    // do FTP stuff 
} 
+0

我試圖用ftpconnect php(我剛纔在上面的問題中添加了)$ connect替換$ login,它給了我另一個錯誤警告: ftp_put():無法打開該文件:沒有這樣的文件或目錄,不知道我應該如何解決這個問題 – Benyaman

+0

請參閱[這個答案](http://stackoverflow.com/a/5425848/250259)如何修復 –

+0

謝謝!我想我設法將其上傳到遠程服務器,只是一個問題,它不顯示圖片時,我輸入的網址。但我會試圖弄清楚。謝謝您的幫助! – Benyaman

相關問題