2013-11-28 160 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

相关问题