2014-10-13 4 views
0

Я попытался загрузить файлы на сервер, используя ftp-соединение в php, и его не работает, его подключение, но получение ошибки, например, «Подключено к XXXXXXXXXXX, для пользователя XXXXXXXXXXXXX Загрузка FTP не удалась!» Я попытался следующий код, пожалуйста, помогите, исправляя его, ..Загрузка изображения на FTP с помощью PHP

image.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Welcome</title> 
</head> 

<body> 
<form action="upload.php" enctype="multipart/form-data" method="post"> 
<input name="file" type="file" /> 
<input name="submit" type="submit" value="Upload File" /> 
</form> 
</body> 
</html> 

upload.php

<?php 
$ftp_server = "XXXXXX"; 
$ftp_user_name = "XXXXXXX"; 
$ftp_user_pass = "XXXXXXXX"; 
$destination_file = "imagetest/123/".$_FILES['file']['name']; 
$source_file = $_FILES['file']['tmp_name']; 

// set up basic connection 
$conn_id = ftp_connect($ftp_server); 
ftp_pasv($conn_id, true); 

// login with username and password 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// check connection 
if ((!$conn_id) || (!$login_result)) { 
    echo "FTP connection has failed!"; 
    echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
    exit; 
} else { 
    echo "Connected to $ftp_server, for user $ftp_user_name"; 
} 

// upload the file 
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

// check upload status 
if (!$upload) { 
echo "FTP upload has failed!"; 
} else { 
echo "Uploaded $source_file to $ftp_server as $destination_file"; 
} 

// close the FTP stream 
ftp_close($conn_id); 
?> 
+0

$ destination_file указать свой каталог правильно ... и убедитесь, что у вас есть каталог, в корневой папке ... в соответствии с вашим кодом каталог является динамическим, как бы вы приложили имя файла на пути ... –

+0

каталога Предупреждение: ftp_put(): Не удалось создать файл. в /homeb/home/XXXXXXXXXX/www/upload.php @Fred – Redsun

+0

удалить. $ _ FILES ['file'] ['name']; в конце $ destination_file = "imagetest/123 /".$_ FILES ['file'] ['name']; и попробуйте ... я думаю, что проблема связана с каталогом ... –

ответ

1

Я проверил ваш код и был немного жесткий время, чтобы заставить его работать, но то, что сработало для меня, было использовать что-то вроде /http_docs, или /public_html в качестве базы/корневой папки.

  • Имена корневых папок могут отличаться от услуг хостинга, поэтому соответствующим образом изменяйте их.

I.e. и с несколько модификаций:

<?php 
$ftp_server = "XXXXXX"; 
$ftp_user_name = "XXXXXXX"; 
$ftp_user_pass = "XXXXXXXX"; 

$folder = "/http_docs/imagetest/123/"; 

$destination_file = $folder . $_FILES['file']['name']; 

$source_file = $_FILES['file']['tmp_name']; 

// rest of code 

Sidenote:

ли не использовать полное имя.

I.e .: /var/user/you/public_html/ он не будет работать.

+0

thanx mine - «www», отлично работает, ... – Redsun

+0

@Redsun Добро пожаловать, рад, что это сработало, * ура * –

Смежные вопросы