2013-11-28 1 views
1

에 있습니다. 몇 개의 필드와 3 개의 이미지를 업로드하는 양식을 작성하려고합니다. 이미지는 FTP를 통해 업로드 될 것이고, PHP가 원격 서버에 업로드 될 때 ftp_connect()로 ftp에 연결하는 데 문제가 있습니다. PHP가 공유 호스트에있을 때 서버에 연결할 수 없습니다. 하지만 PHP가 localhost에있을 때 오류를 표시하지 않습니다. 나는 이제 원격 호스트에서이 작업을하고 원격 서버에 이미지를 ftp_put하여 오류를 격리하려고합니다. 현재이 오류가 발생합니다. 이 ftp_put($login,"abc.info/$photo",$_FILES["file"]["tmp_name"][$i],FTP_ASCII)경고 : ftp_put()은 매개 변수 1이 리소스가 될 것으로 예상하고, 부울은

<?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를 포함, $ 로그인 거기에서 – Benyaman

답변

2

ftp_put()이다

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

ftp_connect()을 사용하여 수득 된 유효한 자원을 필요로한다. 이 오류 메시지가 나타나면 ftp_connect()에 대한 호출에 실패했습니다. ftp_connect()으로 유효한 자원을 가져와야하고 그렇지 않은 경우 문제가 근본 원인 인 경우 스크립트가 원격 호스트에 연결되지 않게하는 원인을 파악해야합니다.

ftp_connect()가 성공적으로 연결되는지 확인하는 if 문에 당신은 FTP에 시도를 마무리해야 실패에서 스크립트를 방지하기위한 방법은 다음과 같습니다

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

내가 ftpconnect PHP에서 (내가 방금 위의 질문에 추가)에서 $ 연결을 $ 로그인을 대체하려고했는데, 그것은 나에게 또 다른 오류를 준다 경고 : ftp_put() : 해당 파일을 열 수 없습니다 :이 파일이나 디렉토리가 없습니다.이 문제를 해결하는 방법을 모르 십니다. – Benyaman

+0

[이 답변보기] (http://stackoverflow.com/a/5425848/250259) 그게 수정 –

+0

고마워! 내가 원격 서버에 그것을 업로드 관리, 그냥 URL을 입력하면 사진을 표시하지 않는 문제. 그러나 나는 그것을 이해하려고 노력할 것이다. 도와 주셔서 감사합니다! – Benyaman